1. 建立索引時,按照索引字段重複最少來排序,盡量建立復合索引。
2. 應考慮在where及order by涉及的列上建立索引。
3. select時,不要返回不需要的行。
4. sql中where的第乙個條件寫聚集索引, where條件中建立了索引的字段要放在前面。
5. 聯合查詢時,使用exists(或not exists)代替in(或not in)。
6. 應盡量避免在where子句中對索引字段使用is null和is not null:
應盡量避免在where子句中對字段進行表示式操作;
應盡量避免在where子句中使用!=或<>操作符;
應盡量避免在where子句中對字段進行函式操作;
應盡量避免like前面使用%, like 'abc%'.
7. 應盡量避免在where子句中使用or來連線條件,用union all等語句代替;
(1)union和union all的區別是,union會自動壓縮多個結果集合中的重複結果,而union all則將所有的結果全部顯示出來,不管是不是重複。
(2)union因為要進行重複值掃瞄,所以效率低。如果合併沒有刻意要刪除重複行,那麼就使用union all。
(3)使用union和union all必須保證各個select 集合的結果有相同個數的列,並且每個列的型別是一樣的。
(4)需要排序時,沒有必要在每乙個select結果集中使用order by子句,可以在最後使用一條order by來對整個結果進行排序。
8. 結果中沒有重覆記錄盡量不要用distinct語句。
9. 結果集很多時,可以使用top或者limit來限制結果條數。
select top 10 * from table;
select * from table limit 10;
10. 頻繁寫入時,索引會增加寫入時間。盡量等資料寫完後,對唯讀表建立索引。
11. 資料量特大時,可以將資料按照時間分表,減少單個表的資料量。
資料庫優化相關建議
一 資料庫優化 建表 create table user id int not null,name varchar 200 ip int engine innodb default charset utf8 1.選擇合適的字段型別,比如使用者狀態選擇tinyint,因為tinyint占用乙個位元組 ...
優化資料庫的10個建議
第乙個技巧也許看來理所當然,但事實上大部分資料庫的問題都來自於設計不好的資料庫結構。譬如我曾經遇見過將客戶端資訊和支付資訊儲存在同乙個資料庫列中的例子。對於系統和用資料庫的開發者來說,這很糟糕。新建資料庫時,應當將資訊儲存在不同的表裡,採用標準的命名方式,並採用主鍵。如果你想優化某個查詢語句,清楚的...
資料庫優化 和建立索引 建議
db 優化 客戶端 協議層 執行計畫 資料庫是把東西有序放好,還能隨時找到,在硬碟上,是乙個應用程式 索引 page資料頁,iam page index page 索引頁 建立索引的原則 1.主鍵必須建立索引 推薦數值主鍵,效能最高 2.外來鍵列也要索引 3.經常查詢的建立索引 4.經常在where...