資料庫優化三個方面:
1.資料庫檢視
2、資料庫索引
3、資料庫表結構
資料庫sql語句優化
1、對查詢進行優化,應盡可能避免全表掃瞄
首先應考慮在 where 及 order by 涉及的列上建立索引,避免全表掃瞄。
資料庫設計的時候使用not null ,default,代替null。
避免在 where 子句中使用!=或<>操作符 (這樣寫將導致引擎放棄使用索引而進行全表掃瞄)
避免在 where 子句中使用 or 來連線條件
盡量避免使用統配符*,盡量使用什麼欄位就查詢什麼字段。
2、不要在條件判斷時進行 算數運算
不要在 where 子句中的「=」左邊進行函式、算術運算或其他表示式運算,這樣系統將可能無法正確
使用索引
3、用 exists 代替 in 是乙個好的選擇
1.慢查日誌,慢查日誌分析日誌
explain select max(opertime) from sys_logs
#max(expr)優化(建立索引)
create index index_log on sys_logs(opertime)
#select tables optimized away
explain select max(opertime) from sys_logs
#count(expr)優化,不使用count*,使用count具體的某個字段
explain select count(operator = '**'or null) from sys_logs
select count(operresult=false),count(isnull(operator)) from sys_logs
#子查詢優化 將子查詢優化成為join的時候,使用 distinct 去重(防止一對多的關係的重複查詢)
#group by(子查詢)優化 防止使用臨時表或者檔案排序,使用索引進行彙總操作,條件查詢的時候,條件避免寫在外層。
#limit 優化,
·、 步湊一,使用主鍵或者索引列進行排序,防止檔案排序
步湊二,記錄上次返回的主鍵索引,下次查詢的時候使用主鍵過濾。(避免過多的掃瞄)
資料庫結構優化
1.選擇合適的資料型別!
2.資料庫表正規化優化
第三正規化:表中資料很多,分為主從表,員工和部門分開!
反第三正規化:新增冗餘字段,浪費空間,節省時間!
3.表的垂直拆分(解決表的寬度問題)
常用的放乙個表
大的字段的資料單獨存放在乙個表中!
4.表的水平拆分(資料庫裡面的資料太多了)
取摸拆分
前後臺資料庫表的區分(前台效率問題,後台統計查詢,方便!)
資料庫優化 資料庫設計優化
一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...
資料庫引擎優化顧問優化資料庫
現在一直在做的專案,資料量相對也不小,開始的時候沒有覺得,因為是剛開始,資料量還很小,在程式使用過程中速度還挺快,但是隨著資料量的不停的增長,發現程式越來越慢,甚至出現了超時的問題,因此要對程式和資料庫進行優化,前期專案比較緊,沒有針對大資料量業務進行分析設計,所以索引等相關優化沒有做到位,通過後期...
資料庫優化
資料庫優化 1 合理使用索引 索引是資料庫中重要的資料結構,它的根本目的就是提高查詢效率。索引的使用要恰到好處,其使用原則如下 在經常進行連線,但是沒有指定為外來鍵的列上建立索引,而不經常連線的字段則由優化器自動生成索引 在頻繁進行排序或分組 即進行groupby或orderby操作 的列上建立索引...