sql 語句 的一些優化小總結

2022-01-14 10:58:14 字數 854 閱讀 1346

1.用exists 代替 in 

原理:exists 是存在乙個即返回乙個 而in是做全盤掃瞄得出所有條件內的資料

(高效)

select

*from member where age>

18and

exists (select'x

'from person where member.name =person.name=

'cyao')

(低效)

select

*from member where age>

18and name in (select name from person where name=

'cyao

')

2.用exists 代替disitnct

(高效)

select name ,age from mamber as d where

exists (select'x

'from person as e where e.name =

d.name)

(低效)

select

distinct name ,age from mamber as d ,person as e where e.name = d.name

3.盡量避免在select 後面 加*

4.盡量避免空值查詢 所有的字段盡量有設定預設值。例如num列預設值為0;判斷由where num is null  -> where num=0 

5.盡量使用數字型字段,例如status=1 啟用  status=2 代表刪除

6.避免頻繁建立和刪除臨時表,以減少系統表資源的消耗。

一些常用的 sql語句總結

查詢賣最好的商品名稱 select goods name from indent detail group by goods id order by sum goods num limit 1 查詢張三購買過的商品名稱 select goods name from user join indent ...

SQL語句的一些自我總結

不同的 sql join 除了我們在上面的例子中使用的 inner join 內連線 我們還可以使用其他幾種連線。下面列出了您可以使用的 join 型別,以及它們之間的差異。join 如果表中有至少乙個匹配,則返回行 left join 即使右表中沒有匹配,也從左表返回所有的行 right join...

一些關於SQL優化的總結

由於這個專案一直都是mysql所以寫點mysql的 1.資料儲存引擎的選擇,myisam 和 innodb 的選擇 innodb 一般都會選擇這個,但是如果真的涉及到一些不涉及增刪的表,可以考慮下myisam 該引擎不支援事務,不支援外來鍵,優點就是訪問速度快,如果都是查詢的話,這個儲存引擎可能會使...