資料庫優化

2021-08-21 03:52:32 字數 1049 閱讀 6574

1  外來鍵必須加索引。

2 select

語句中避免使用 *,盡量應該根據業務需求按欄位進行查詢

3 在 where 及 order by 涉及的列上建立索引,要盡量避免全表掃瞄。

4 在設計表時要避免表中字段出現null的情況,通常要為其設定預設值,避免在查詢時放棄使用索引而進行全表掃瞄(null的話如果有索引不生效)。

5 用》=替換》

如乙個表有100萬記錄,乙個數值型字段a,

a=0時,有30萬條;

a=1時,有30萬條;

a=2時,有39萬條;

a=3時,有1萬記錄。

那麼執行 a>2 與 a>=3 的效果就有很大的區別了,因為 a>2 時,

oracle會先找出為2的記錄索引再進行比較,

而a>=3時oracle則直接找到=3的記錄索引。

6 用not exists/exists 替換 not in / in

not in / in不能應用表的索引

7 like操作符(大資料的全文檢索使用luncene)(solr)

因為使用like不當,會導致效能問題,原因是like在左右兩邊都有

%的時候,不會使用索引。

如like '%5400%' 這種查詢不會引用索引而是全表掃瞄,

而like 'x5400%' 則會引用範圍索引。

8 避免在索引列上使用計算和函式,這樣索引就不能使用  

舉例:  sal為索引列

低效:select … from  dept  where sal * 12 > 25000;

高效:

select … from dept where sal > 25000/12;

2.6 用union-all 替換union,

因為union-all不會過濾重複資料而且不會自動排序,所執行效率要快於union。

9 減少訪問資料庫的次數,可以使用快取,分段提交等處理

舉例:如果批量刪除多條資料,可以用  delete  from tablename where id in (1,2,3), 而不要用多條delete語句進行刪除

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

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

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

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

資料庫優化

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