国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

10個MySQL性能調優的方法

2024-07-24 13:07:44
字體:
來源:轉載
供稿:網友
本文介紹了10個MySQL性能調優的方法,每個方法的講解都很細致,非常實用,,需要的朋友可以參考下
 

MYSQL 應該是最流行了 WEB 后端數據庫。WEB 開發語言最近發展很快,PHP, Ruby, Python, Java 各有特點,雖然 NOSQL 最近越來越多的被提到,但是相信大部分架構師還是會選擇 MYSQL 來做數據存儲。

MYSQL 如此方便和穩定,以至于我們在開發 WEB 程序的時候很少想到它。即使想到優化也是程序級別的,比如,不要寫過于消耗資源的 SQL 語句。但是除此之外,在整個系統上仍然有很多可以優化的地方。

1. 選擇合適的存儲引擎: InnoDB

除非你的數據表使用來做只讀或者全文檢索 (相信現在提到全文檢索,沒人會用 MYSQL 了),你應該默認選擇 InnoDB 。

你自己在測試的時候可能會發現 MyISAM 比 InnoDB 速度快,這是因為: MyISAM 只緩存索引,而 InnoDB 緩存數據和索引,MyISAM 不支持事務。但是 如果你使用 innodb_flush_log_at_trx_commit = 2 可以獲得接近的讀取性能 (相差百倍) 。

1.1 如何將現有的 MyISAM 數據庫轉換為 InnoDB:

 

復制代碼代碼如下:
mysql -u [USER_NAME] -p -e "SHOW TABLES IN [DATABASE_NAME];" | tail -n +2 | xargs -I '{}' echo "ALTER TABLE {} ENGINE=InnoDB;" > alter_table.sql
perl -p -i -e 's/(search_[a-z_]+ ENGINE=)InnoDB//1MyISAM/g' alter_table.sql
mysql -u [USER_NAME] -p [DATABASE_NAME] < alter_table.sql

 

1.2 為每個表分別創建 InnoDB FILE:

 

復制代碼代碼如下:
innodb_file_per_table=1

 

這樣可以保證 ibdata1 文件不會過大,失去控制。尤其是在執行 mysqlcheck -o –all-databases 的時候。

 

2. 保證從內存中讀取數據,講數據保存在內存中

2.1 足夠大的 innodb_buffer_pool_size

推薦將數據完全保存在 innodb_buffer_pool_size ,即按存儲量規劃 innodb_buffer_pool_size 的容量。這樣你可以完全從內存中讀取數據,最大限度減少磁盤操作。

2.1.1 如何確定 innodb_buffer_pool_size 足夠大,數據是從內存讀取而不是硬盤?
方法 1

?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博乐市| 汤阴县| 偃师市| 仁化县| 伊宁县| 四川省| 郧西县| 沂源县| 青川县| 沧州市| 抚州市| 织金县| 竹北市| 香港| 上思县| 潼南县| 马山县| 广宗县| 达州市| 磐石市| 普格县| 平原县| 如皋市| 荔波县| 龙井市| 大英县| 全州县| 遂平县| 洪江市| 青铜峡市| 河津市| 涿鹿县| 工布江达县| 阿瓦提县| 比如县| 安达市| 惠州市| 元江| 宁武县| 大厂| 太白县|