索引
1.避免在where語句中對字段進行null值判斷,否則導致引擎放棄使用索引。
2.避免使用!=或者<>操作符
3.避免or select id from t where num=10 union all select id from t where num=20
4.應盡量避免在 where 子句中對字段進行表示式 函式 操作,這將導致引擎放棄使用索引而進行全表掃瞄
5.盡量避免在索引過的字元資料中,使用非打頭字母搜尋。這也使得引擎無法利用索引。
6.4.in 和 not in 也要慎用,因為in會使系統無法使用索引,而只能直接搜尋表中的資料 見如下例子: select * from t1 where name like 『%l%』 select * from t1 where substing(name,2,1)=』l』 select * from t1 where name like 『l%』 使用聚集索引來優化查詢速度,比如查詢某段時間,是線性的。
使用分表查詢,按照日期單獨建表,把一張表分成多張表
使用資料庫分割槽技術,把
分割槽表在邏輯上是乙個表,而物理上是多個表。從使用者角度來看,分割槽表和普通表是一樣的。使用分割槽表的主要目的是為改善大型表以及具有多個訪問模式的表的可伸縮性和可管理性。
分割槽表是把資料按設定的標準劃分成區域儲存在不同的檔案組中,使用分割槽可以快速而有效管理和訪問資料子集。
查詢語句的優化
寫資料語句時盡可能減少表的全域性掃瞄,利用查詢條件來優化查詢速度
1. 盡量想辦法使用臨時表掃瞄替代全表掃瞄;
2. 拋棄in和not in語句,使用exists和not exists替代;
3. 和客戶確認,模糊查詢是否有必要,如沒有必要,去掉like語句;
4. 注意建立適當的,符合場景的索引;
5. 踩死 "*" 號;
6. 避免在where條件中對字段進行函式操作;
7. 對實時性要求不高的報表,允許髒讀(with(nolock))。
資料庫優化 資料庫設計優化
一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...
資料庫引擎優化顧問優化資料庫
現在一直在做的專案,資料量相對也不小,開始的時候沒有覺得,因為是剛開始,資料量還很小,在程式使用過程中速度還挺快,但是隨著資料量的不停的增長,發現程式越來越慢,甚至出現了超時的問題,因此要對程式和資料庫進行優化,前期專案比較緊,沒有針對大資料量業務進行分析設計,所以索引等相關優化沒有做到位,通過後期...
資料庫優化
資料庫優化 1 合理使用索引 索引是資料庫中重要的資料結構,它的根本目的就是提高查詢效率。索引的使用要恰到好處,其使用原則如下 在經常進行連線,但是沒有指定為外來鍵的列上建立索引,而不經常連線的字段則由優化器自動生成索引 在頻繁進行排序或分組 即進行groupby或orderby操作 的列上建立索引...