mysql性能优化
1、增加关联字段索引
2、正确使用in和exists
(1)
select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;
T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。
select * from T1 where T1.a in (select T2.a from T2) ;
T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。
简而言之,一般式:外表大,用IN;内表大,用EXISTS。
(2)
查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引; 而not extsts 的子查询依然能用到表上的索引。
无论那个表大,用not exists都比not in要快。
3、int和bigint(字段长度)
int能满足,不要用bigint;mysql数据库innodb类型索引默认大小是16kb,bingint一次查的数据会少一点,所以会慢一点
其中:InnoDB和Myisam的主要区别:
InnoDB:数据支持事务,外部键等;大量的insert和update更快等
Myisam:不支持事务,大量的SELECT查询更快等
其它日后补充。