MySQL表優化
優化MySQL的方式
(1)讀寫分離,主資料庫負責寫,多個從資料庫負責讀
(2)限制查詢。每條sql語句需要加限制條件,避免全表掃描
(3)使用MySQL快取(針對更新少,查詢多,重量級的資料表)
(4)垂直分割槽:將一個資料表拆分成多個資料表(對欄位進行拆分)
(5)建立合適索引
優點:可以使得行資料變小,在查詢時減少讀取的Block數,減少I/O次數。此外,垂直分割槽可以簡化表的結構,易於維護。
缺點: 主鍵會出現冗餘,需要管理冗餘列,並會引起Join操作,可以通過在應用層進行Join來解決。此外,垂直分割槽會讓事務變得更加複雜;
(5)水平分割槽:也是將一個表拆分成多個表(表結構不變,對資料進行拆分)
保持資料表結構不變,通過某種策略儲存資料分片。這樣每一片資料分散到不同的表或者庫中,達到了分散式的目的。 水平拆分可以支撐非常大的資料量。
MySQL快取?
開啟查詢快取後在同樣的查詢條件以及資料情況下,會直接在快取中返回結果。這裡的查詢條件包括查詢本身、當前要查詢的資料庫、客戶端協議版本號等一些可能影響結果的資訊。因此任何兩個查詢在任何字元上的不同都會導致快取不命中。此外,如果查詢中包含任何使用者自定義函式、儲存函式、使用者變數、臨時表、Mysql庫中的系統表,其查詢結果也不會被快取。
快取建立之後,Mysql的查詢快取系統會跟蹤查詢中涉及的每張表,如果這些表(資料或結構)發生變化,那麼和這張表相關的所有快取資料都將失效。
快取雖然能夠提升資料庫的查詢效能,但是快取同時也帶來了額外的開銷,每次查詢後都要做一次快取操作,失效後還要銷燬。 因此,開啟快取查詢要謹慎,尤其對於寫密集的應用來說更是如此。如果開啟,要注意合理控制快取空間大小,一般來說其大小設定為幾十MB比較合適。
相關文章
- Mysql表引擎優化MySql優化
- MySQL大表優化方案MySql優化
- MySQL表連線及其優化MySql優化
- 乾貨!MySQL大表優化方案(1)MySql優化
- MySQL 上億大表優化實踐MySql優化
- mysql優化 | 儲存引擎,建表,索引,sql的優化建議MySql優化儲存引擎索引
- MySql 日常指導,及大表優化思路MySql優化
- MySQL 優化六(InnoDB 下 update 資料出現表鎖之優化)MySql優化
- mysql優化MySql優化
- Mysql 優化MySql優化
- (mysql優化-3) 系統優化MySql優化
- MySQL(二) MySql常用優化MySql優化
- mysql 大表中count() 使用方法以及效能優化.MySql優化
- Mysql多欄位大表的幾種優化方法MySql優化
- 記一次mysql 4.5GB大表優化MySql優化
- MySQL優化學習手札(四) 單表訪問方法MySql優化
- mysql 表資料量大量查詢慢如何優化MySql優化
- mysql優化(一)MySql優化
- mysql order by 優化MySql優化
- mysql效能優化MySql優化
- MySQL——效能優化MySql優化
- 舊,優化mysql優化MySql
- MySQL索引優化MySql索引優化
- mysql優化索引MySql優化索引
- MySQL連線查詢驅動表被驅動表以及效能優化MySql優化
- MySQL調優之索引優化MySql索引優化
- MySQL優化(1)——–常用的優化步驟MySql優化
- MySQL優化之系統變數優化MySql優化變數
- MySQL 核心深度優化MySql優化
- MySQL 優化筆記MySql優化筆記
- MySQL 高階優化MySql優化
- MySQL 優化常用方法MySql優化
- MySQL 效能優化方案MySql優化
- MySQL優化面試MySql優化面試
- MySQL系列:效能優化MySql優化
- MySQL優化基本操作MySql優化
- Mysql索引優化(一)MySql索引優化
- MySQL應用優化MySql優化