1、效率低
2、容易出現問題,或查詢結果有誤 (不能更嚴重的缺點)
insert into test2 (id2) values (null)
(跑題一句:建表的時候最好不要允許含空值,否則問題多多。)
1、用 exists 或 not exists 代替
select * from test1
where exists (select * from test2 where id2 = id1 )
select * from test1
where not exists (select * from test2 where id2 = id1 )
2、用join 代替
select id1 from test1
inner join test2 on id2 = id1
select id1 from test1
left join test2 on id2 = id1
where id2 is null
妥妥的沒有問題了! 優化sql,避免影響sql的執行效率
1.避免使用 select from 表名 只查詢需要的需要的字段 如果表字段較多,用到的字段佔表字段中的少數,使用select 造成資源浪費,影響sql執行效率 但是如果查詢的表字段較少,或者表中80 資料字段都是需要用到的,可以使用select from 表名 2.限制結果集的資料量。查詢時不要...
mysql 優化隱藏器 優化Sql語句,避免查詢慢
前言 在面試過程中,經常會被問到,如果sql語句執行耗時過長,該如何優化sql,提高查詢效率,在此我根據自己的實際經驗,做如下總結。一 explain分析sql語句 sql優化經常用到explain來檢視sql語句的執行計畫,以下5點是我們重點關注的地方 explain執行sql語句以後顯示的執行計...
避免全表掃瞄的sql優化
對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在where 及order by 涉及的列上建立索引 嘗試下面的技巧以避免優化器錯選了表掃瞄 使用analyze table tbl name為掃瞄的表更新關鍵字分布。對掃瞄的表使用force index告知mysql,相對於使用給定的索引表掃瞄將非常耗...