提到優化,先要確定出現的問題,是儲存引擎選擇問題,還是sql語句使用問題(如:索引)亦或者是單一儲存伺服器對於千萬級別的資料力不從心。
解決方法:
1、根據不同業務選用不同儲存引擎,雖然一般情況下都優先選擇innodb。
2、分析sql語句的影響結果集。查慢查詢日誌,定位慢查詢的sql語句,檢視是否有鎖定的sql操作。
3、分庫,分表,分割槽(慎用分割槽,往往oltp操作不適用分割槽,分割槽反倒會拖慢原有查詢)
4、利用快取或nosql代替現有一些熱點查詢操作,減輕mysql壓力。
可以基於業務邏輯拆分,不同業務分布在不同伺服器中,減少單一伺服器壓力
垂直分表和水平分表兩種方式
垂直分表:將表中的一些頻繁更新和非頻繁更新的字段分開存放
水平分表,三種分表方式:
均等分表,雜湊方式分表,優點是負載平均分布,缺點是當容量持續增加時擴榮不方便,需要重新分表,主鍵就很不好處理。
時間分表,根據不同的建立時間分表,適用於olap應用。
mysql資料庫優化索引 mysql資料庫索引調優
一 mysql索引 1 磁碟檔案結構 innodb引擎 frm格式檔案儲存表結構,ibd格式檔案儲存索引和資料。myisam引擎 frm格式檔案儲存表結構,myi格式檔案儲存索引,myd格式檔案儲存資料 2 mysql資料庫資料範問原理 innodb btree 1 ibd檔案中主鍵構建b tree...
mysql資料庫優先 MySQL資料庫優化
1.新增索引 mysql資料庫的四類索引 index 普通索引,資料可以重複,沒有任何限制。unique 唯一索引,要求索引列的值必須唯一,但允許有空值 如果是組合索引,那麼列值的組合必須唯一。primary key 主鍵索引,是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值,一般是在建立表...
mysql資料庫優化
用到啥學啥,mysql資料庫優化成了這幾天的老大難問題。瘋狂的尋找mysql優化的資料,覺得有用的不少,記錄下跟大家分享,對了,這裡僅僅是mysql資料庫本身的優化,沒有寫磁碟之類的 開始之前,介紹倆mysql的命令 show global status 檢視執行狀態的,顯示執行各種狀態值 show...