Sql語句優化

2021-09-26 16:05:11 字數 1113 閱讀 3005

union all不執行select distinct函式,這樣就會減少很多不必要的資源 在跨多個不同的資料庫時使用union是乙個有趣的優化方法,union從兩個互不關聯的表中返回資料,這就意味著不會出現重複的行,同時也必須對資料進行排序,我們知道排序是非常耗費資源的,特別是對大表的排序。 union all可以大大加快速度,如果你已經知道你的資料不會包括重複行,或者你不在乎是否會出現重複的行,在這兩種情況下使用union all更適合。此外,還可以在應用程式邏輯中採用某些方法避免出現重複的行,這樣union all和union返回的結果都是一樣的,但union all不會進行排序。

7、程式中如果一次性對同乙個表插入多條資料,比如以下語句:

nsert into person(name,age) values(『xboy』, 14);

insert into person(name,age) values(『xgirl』, 15);

insert into person(name,age) values(『nia』, 19);

把它拼成一條語句執行效率會更高. insert into person(name,age) values(『xboy』, 14), (『xgirl』, 15),(『nia』, 19);

例如:常見經典面試題及答案中第三題。

8、盡量避免使用in

很多時候用 exists 代替 in 是乙個好的選擇:

select num from a where num in(select num from b)

用下面的語句替換:

select num from a where exists(select 1 from b where num=a.num)

9、盡量避免使用or

應盡量避免在 where 子句中使用 or 來連線條件,否則將導致引擎放棄使用索引而進行全表掃瞄,如:

select id from t where num=10 or num=20

可以這樣查詢:

select id from t where num=10

union all

select id from t where num=20

SQL 語句優化 OR 語句優化案例

從上海來到溫州,看了前幾天監控的sql語句和資料變化,發現有一條語句的io次數很大,達到了150萬次io,而兩個表的資料也就不到20萬,為何有如此多的io次數,下面是執行語句 select ws.nodeid,wi.laststepid,wi.curstepid from workflowinfo ...

sql語句優化!

1.不要使用in操作符,這樣資料庫會進行全表掃瞄,推薦方案 在業務密集的sql當中盡量不採用in操作符 a 改為 a 4.is null 或is not null操作 判斷字段是否為空 5.及 操作符 大於或小於操作符 大於或小於操作符一般情況下是不用調整的,因為它有索引就會採用索引查詢,但有的情況...

SQL語句優化

explain sql 反饋sql語句執行資訊 1 優化 select min id as nid,uid pmzongfen updatetime picid gg from qd mouldu qd sell limit 1 select uid pmzongfen updatetime pic...