資料庫優化

2021-09-01 12:51:02 字數 1364 閱讀 5748

資料庫優化三個方面:

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操作 的列上建立索引...