資料庫優化

2021-10-07 05:21:37 字數 1064 閱讀 7869

1.首先要排除快取干擾,mysql8.0以前sql是會快取的,可以加sql nocache去排除

2.可以開啟慢sql日誌定位到慢sql,然後explain檢視執行計畫,重點關注字段

rows:為了查詢資料而讀取的行數;該資料可能不准,因為mysql採用取樣統計,會統計n個資料頁,然後取乙個均值,再乘以索引頁數,可以用analyze table tablename來重新統計索引資訊

possible_keys: 可能使用的索引;

key: 真實使用的索引

key_len: mysql中使用索引位元組長度

3.索引的使用:索引有聚集索引和輔助索引

聚集索引:即為主鍵索引,特點是葉子結點上儲存了資料,不需要回表操作,效率較高

輔助索引:(普通索引)是非主鍵索引,葉子結點儲存了資料的主鍵索引,需要回表操作

覆蓋索引:如果乙個索引包含(或覆蓋)所有需要查詢的字段的值,稱為『覆蓋索引』。即只需掃瞄索引而無須回表,將單列索引公升級為聯合索引可以提高效率避免回表操作,最左匹配原則:對於復合索引,如果最左邊的索引沒有執行,後面的索引也無法執行

changebuff:對於修改操作,如果在記憶體裡就直接更新,如果不在,在保證資料一致性的前提下,innodb會將這些更新操作存放在changebuff裡面,這樣就不需要從磁碟裡讀取該資料,當需要讀取資料的時候回觸發merge操作,即將changebuff裡與該資料有關的操作執行,changebuff是持久化的資料,在記憶體中有拷貝,在後台mysql會定時merge。使用場景:對於主鍵索引,因為要滿足唯一性約束,所以要把資料從磁碟讀入記憶體,也就不需要再去儲存修改操作了,所以只適用於普通索引。尤其對於寫多讀少的場景非常適合,最常見的賬單、日誌類的的系統

資料庫優化 資料庫設計優化

一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...

資料庫引擎優化顧問優化資料庫

現在一直在做的專案,資料量相對也不小,開始的時候沒有覺得,因為是剛開始,資料量還很小,在程式使用過程中速度還挺快,但是隨著資料量的不停的增長,發現程式越來越慢,甚至出現了超時的問題,因此要對程式和資料庫進行優化,前期專案比較緊,沒有針對大資料量業務進行分析設計,所以索引等相關優化沒有做到位,通過後期...

資料庫優化

資料庫優化 1 合理使用索引 索引是資料庫中重要的資料結構,它的根本目的就是提高查詢效率。索引的使用要恰到好處,其使用原則如下 在經常進行連線,但是沒有指定為外來鍵的列上建立索引,而不經常連線的字段則由優化器自動生成索引 在頻繁進行排序或分組 即進行groupby或orderby操作 的列上建立索引...