MySQL簡單最佳化
文章出處:
公司升級了伺服器的配置,記憶體吃緊的問題得以解決,由此想到了幾個最佳化MySQL的簡單方法。首先明確兩件事,我們的業務場景是常見的高併發web服務,查詢速度是重中之重。還有就是最佳化前一定要備份資料庫,不然出問題就只能跑路了。
1.使用固態硬碟
這個最佳化方法毫無技術含量,完全就是花錢買效能,但是不得不說這個方法相當的簡單、粗暴、有效。藉助固態硬碟高頻的讀寫速度可以大幅提升MySQL的各項效能
2.新增索引
當資料量達到一定級別時,新增合適的索引是必須的。MySQL是B+樹或者其變種樹,將資料按照索引的資料結構排序以最佳化查詢效果。如果表中的資料要頻繁的插入、刪除時,這些操作會損害索引,導致索引佔用了很大的無效空間。我就見過一張資料表的所以比資料量大很多,查詢速度超慢甚至不及不新增索引,原因就是頻繁的插入刪除導致的,這種場景需要定期刪除索引然後重新生成索引
3.去掉外來鍵
大學期間,老師強調了使用外來鍵來約束資料一致性是很有必要的。上學時我也嚴格奉行了這一觀點,畢竟這可以讓我少寫程式碼,把一致性問題拋給資料庫。工作後結合真正的業務場景,資料庫常常成為效能瓶頸,而服務並不會成為效能瓶頸,所以將資料一致性問題的解決方案寫入服務中以此減少資料庫壓力很有必要。
4.使用InnoDB
很多事實都表明InnoDB比MyISAM更具優勢。InnoDB對記憶體的使用更全面,記憶體的訪問速度顯然比磁碟要快
5.設定InnoDB記憶體
innodb_buffer_pool_size引數代表分配給InnoDB的記憶體大小,分配記憶體時要給作業系統留下足夠的記憶體。根據同事的經驗之談是可以為innodb_buffer_pool_size分配伺服器80%的記憶體,當然了,這麼做的前提條件是你的服務上基本只有MySQL,如果伺服器上存在資料解析等其他很費記憶體的服務時,innodb_buffer_pool_size數值要酌情減少
6.設定InnoDB多工
如果分配給innodb_buffer_pool_size的記憶體大於2G時,我們可以考慮將InnoDB的緩衝池劃分為多個,我們可以修改配置中的innodb_buffer_pool_instances引數。對於高併發服務,效能瓶頸往往是多執行緒訪問MySQL,劃分更多的緩衝池可以有效的緩解這個問題。當然緩衝池也不是越多越好,每個緩衝池的記憶體過低的話就不能發揮出多個緩衝池的優勢了。官方的建議是每個緩衝池需要至少1G的記憶體。
最後提醒大家,對MySQL的配置修改需要重啟MySQL才能生效
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1727/viewspace-2808492/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於滴滴雲 MySQL 驗證索引最佳化簡單查詢MySql索引
- Docker簡單使用MySQLDockerMySql
- mysql簡單脫敏MySql
- Mysql 簡單入門MySql
- MySQL簡單總結MySql
- mysql 簡單安裝MySql
- mysql簡單效能測試MySql
- MySQL基本簡單操作01MySql
- 在大資料情況下MySQL的一種簡單分頁最佳化方法大資料MySql
- linux 安裝 mysql簡單教程LinuxMySql
- MySQL原理簡介—11.最佳化案例介紹MySql
- 一些常見的簡單最佳化
- 深入淺析nginx部署及簡單最佳化Nginx
- MySql和簡單的sql語句MySql
- 簡單的php連線mysql類PHPMySql
- 簡單認識MySQL儲存引擎MySql儲存引擎
- 簡單搭建MySQL主從複製MySql
- mysql查詢快取簡單使用MySql快取
- mysql日誌系統簡單使用MySql
- MySQL的簡單查詢語句MySql
- 最佳化兩個簡單的巢狀迴圈巢狀
- 最佳化Go程式的簡單技巧 - stephen.shGo
- mysql最佳化MySql
- Mysql 最佳化MySql
- 簡單分析MySQL中的primary key功能MySql
- 在MySQL中使用序列的簡單教程MySql
- 簡單解析MySQL中的cardinality異常MySql
- 簡單談談MySQL的loose index scanMySqlIndex
- MySQL - 資料查詢 - 簡單查詢MySql
- MySQL:簡單記錄訊號處理MySql
- mysql的安裝和簡單的操作MySql
- MySQL:簡單insert 一秒原因排查MySql
- 【MySQL】MySQL語句最佳化MySql
- MySQL實戰 | 06/07 簡單說說MySQL中的鎖MySql
- MySQL索引下推,原來這麼簡單!MySql索引
- 簡單瞭解 MySQL 中相關的鎖MySql
- MySQL效能優化之簡單sql改寫MySql優化
- php簡單操作mysql資料庫的類PHPMySql資料庫