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:
1.2 為每個表分別創建 InnoDB FILE:
這樣可以保證 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
新聞熱點
疑難解答