MySQL 對於千萬級的大表要怎麼優化?

2022-05-14 23:35:45 字數 533 閱讀 2056

第一優化你的sql和索引;

第二加快取,memcached,redis;

第三以上都做了後,還是慢,就做主從複製或主主複製,讀寫分離,可以在應用層做,效率高,也可以用三方工具,第三方工具推薦360的atlas,其它的要麼效率不高,要麼沒人維護;

第四如果以上都做了還是慢,不要想著去做切分,mysql自帶分割槽表,先試試這個,對你的應用是透明的,無需更改**,但是sql語句是需要針對分割槽表做優化的,sql條件中要帶上分割槽條件的列,從而使查詢定位到少量的分割槽上,否則就會掃瞄全部分割槽,另外分割槽表還有一些坑,在這裡就不多說了;

第五如果以上都做了,那就先做垂直拆分,其實就是根據你模組的耦合度,將乙個大的系統分為多個小的系統,也就是分布式系統;

第六才是水平切分,針對資料量大的表,這一步最麻煩,最能考驗技術水平,要選擇乙個合理的sharding key,為了有好的查詢效率,表結構也要改動,做一定的冗餘,應用也要改,sql中盡量帶sharding key,將資料定位到限定的表上去查,而不是掃瞄全部的表;

mysql資料庫一般都是按照這個步驟去演化的,成本也是由低到高;

MySQL 對於千萬級的大表要怎麼優化?

很多人第一反應是各種切分 我給的順序是 第一優化你的sql和索引 第二加快取,memcached,redis 第三以上都做了後,還是慢,就做主從複製或主主複製,讀寫分離,可以在應用層做,效率高,也可以用三方工具,第三方工具推薦360的atlas,其它的要麼效率不高,要麼沒人維護 第四如果以上都做了還...

MySQL 對於千萬級的大表要怎麼優化?

對大資料的資料庫管理優化的總結 常用的 優化sql 突出快字,使完成操作的時間最短 1 用索引提高效率 2 選擇有效率的表名順序,及資料結構及欄位 3 使用decode函式可以避免重複掃瞄相同記錄或重複連線相同的表 4 刪除重複記 5 過內部函式提高sql效率 讀寫分離 操作不在乙個表裡完成 1 主...

MySQL 對於千萬級的大表要怎麼優化?

很多人第一反應是各種切分 我給的順序是 第一優化你的sql和索引 第二加快取,memcached,redis 第三以上都做了後,還是慢,就做主從複製或主主複製,讀寫分離,可以在應用層做,效率高,也可以用三方工具,第三方工具推薦360的atlas,其它的要麼效率不高,要麼沒人維護 第四如果以上都做了還...