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查询更快等

 

其它日后补充。

 

posted @ 2018-08-08 13:29  乌瑟尔  阅读(136)  评论(0编辑  收藏  举报