什么是延遲關聯
使用索引查詢出來數據,之后把查詢結果和同一張表中數據進行連接查詢,進而提高查詢速度!
create table smth1 (
id int auto_increment ,
ver int(11) default null,
content varchar(1000) not null,
intro varchar(1000) not null,
primary key(id),
key idver(id,ver)
)engine = innodb default charset = utf8;
create procedure smthTest1()
begin
declare num int default 100001;
while num < 1000000 do
set num := num +1;
insert into smth1 values (num ,num,'我是*****','我是誰');
end while ;
end;
可見隨着查詢page 變大,時間會越來越大!
優化方案:先利用索引查詢出來數據,再進行聯合查詢
效率提高了一個量級
此外,還會想到用in來查詢而不是子查詢,為什么不用in,使用in會先查詢出來一條id,之后再去和下面進行匹配,會進行smth1進行全表掃描!
參考文檔:http://www.linuxidc.com/Linux/2014-11/109441.htm