sql語句優化怎麼做的,建索引的時候要考慮什麼

時間 2022-10-09 23:17:40

1樓:潛成宛己

1、表的主鍵、外來鍵必須有索引;

2、資料量超過300的表應該有索引;

3、經常與其他表進行連線的表,在連線欄位上應該建立索引;

4、經常出現在where子句中的字段,特別是大表的字段,應該建立索引;

5、索引應該建在選擇性高的字段上;

6、索引應該建在小字段上,對於大的文字字段甚至超長字段,不要建索引;

7、復合索引的建立需要進行仔細分析;盡量考慮用單字段索引代替:

a、正確選擇復合索引中的主列字段,一般是選擇性較好的字段;

b、復合索引的幾個字段是否經常同時以and方式出現在where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復合索引;否則考慮單字段索引;

c、如果復合索引中包含的字段經常單獨出現在where子句中,則分解為多個單字段索引;

d、如果復合索引所包含的字段超過3個,那麼仔細考慮其必要性,考慮減少復合的字段;

e、如果既有單字段索引,又有這幾個欄位上的復合索引,一般可以刪除復合索引;

8、頻繁進行資料操作的表,不要建立太多的索引;

9、刪除無用的索引,避免對執行計畫造成負面影響;

以上是一些普遍的建立索引時的判斷依據。一言以蔽之,索引的建立必須慎重,對每個索引的必要性都應該經過仔細分析,要有建立的依據。因為太多的索引與不充分、不正確的索引對效能都毫無益處:

在表上建立的每個索引都會增加儲存開銷,索引對於插入、刪除、更新操作也會增加處理上的開銷。另外,過多的復合索引,在有單字段索引的情況下,一般都是沒有存在價值的;相反,還會降低資料增加刪除時的效能,特別是對頻繁更新的表來說,負面影響更大。

2樓:睢建設戈庚

索引一般是由查詢優化器進行分析決定是否使用,查詢優化器會根據實際情況對查詢語句實行不同的計畫,同一條語句,根據當前資料量的多少計畫也會不同

如果你要強制讓優化器選擇使用該索引,可以在查詢時表名後面加提示with(index(索引名))

SQL求和語句,SQL裡邊的求和語句怎麼寫

select sum from select sum zy detail charge.charge amount from zy detail charge where zy detail charge.charge codein select fee code from or level whe...

sql的查詢語句怎麼寫,SQL的查詢語句怎麼寫?

不知道樓主是否需要查詢這張表返回結果是不含有重複行。查詢表中不含重複行的語句 select distinct from table name 同時可以將 指定為你需要查詢的列 sql查詢 更新語句怎麼寫 1 首先需要開啟sql server 資料庫。2 點選新建查詢按鈕,進入sql 執行介面。3 編...

sql求和,SQL裡邊的求和語句怎麼寫

select table a.lx,money,salary from select lx,sum money money from a group by lx table a join select lx,sum salary salary from b group by lx table b o...

SQL裡邊的求和語句怎麼寫,SQL資料庫裡的求和語句怎麼寫?

sql中求和語句分為縱向彙總和橫向彙總語句 假設資料列為 a b c d e f g 縱向彙總語句 select sum a sum b sum c sum d sum e sum f sum g from 表名 橫向彙總的sql語句是 select a,b,c,d,e,f,g,a b c d e ...

通過SQL語句怎麼去掉值中的單引號

update a set text replace text,單引號前面需要單引號作為轉義符 如果確定單引號是在第乙個字元的話,可以用三種方法實現 1 right擷取字串函式配合len函式 12 update 表 set 登記薄編號 right 登記薄編號,len 登記薄編號 1 where lef...