如何提高SQL查詢的效率?

2021-09-29 07:43:42 字數 1243 閱讀 5610

1. select子句中盡量避免使用*

select子句中,*是選擇全部資料的意思,比如語句:「select * from 成績表」,意思是選擇成績表中所有列的資料;

面對動輒十萬、百萬,甚至上千萬的資料,此時需要哪些列的資料,就提取哪些列的資料,盡量少用*來獲取資料;

2. where子句比較符號左側避免函式

盡量避免在where條件子句中,比較符號的左側出現表示式、函式等操作。因為這會導致資料庫引擎進行全表掃瞄,從而增加執行時間;為了提高效率,where子句中遇到函式或加減乘除的運算,應當將其移到比較符號的右側;

「給每人加5分後,成績90分以上」的條件很多人會這樣寫:where成績 + 5> 90  (表示式在比較符號的左側);

優化方法:where 成績 >90 – 5(表示式在比較符號的右側)

3. 盡量避免使用in和not in

in和not in也會導致資料庫進行全表搜尋,增加執行時間;

比如,我想看看第8、9個人的學號和成績,大多數同學會用這個語句:

select 學號, 成績 from 成績表 where 學號 in (8, 9)
這一類語句,優化方法如下:

select 學號, 成績 from 成績表 where 學號 between 8 and 9
4. 盡量避免使用or

or同樣會導致資料庫進項全表搜尋。在工作中,如果你只想用or從幾十萬語句中取幾條出來,是非常划不來的,怎麼辦呢?下面的方法可替代or;

從成績表中選出成績是是88分或89分學生的學號:

select 學號 from 成績表 where 成績 = 88 or 成績 = 89
優化後:

select 學號 from 成績表 where 成績 = 88

union

select 學號 from 成績表 where 成績 = 89

5.使用limit子句限制返回的資料行數

如果前台只需要顯示10行資料,而你的查詢結果集返回了1萬行,那麼這適合最好使用limt子句來限制查詢返回的資料行數;

sql 如何提高SQL查詢的效率?

如何提高sql查詢的效率?原創猴子聊人物 發布於2019 10 31 21 00 00 閱讀數 11195 收藏 展開 題目 我們公司的資料量非常大,需要的不僅僅是提取資料,要了解sql方案優化的。一般在寫sql時需要注意哪些問題,可以提高查詢的效率?解題思路 資料量大的情況下,不同的sql語句,消...

如何提高SQL語言的查詢效率

由於sql是面向結果而不是面向過程的查詢語言,所以一般支援sql語言的大型關係型資料庫都使用乙個基於查詢成本的優化器,為即時查詢提供乙個最佳的執行策略。對於優化器,輸入是一條查詢語句,輸出是乙個執行策略。一條sql查詢語句可以有多種執行策略,優化器將估計出全部執行方法中所需時間最少的所謂成本最低的那...

如何提高SQL語言的查詢效率

如何 提高sql語言的查詢效率 問 請問我如何才能提高sql語言的查詢效率呢?答 這得從頭說起 由於sql是面向結果而不是面向過程的查詢語言,所以一般支援sql語言的大型關係型資料庫都使用乙個基於查詢成本的優化器,為即時查詢提供乙個最佳的執行策略。對於優化器,輸入是一條查詢語句,輸出是乙個執行策略。...