mysql简单性能优化

查看性能参数

通过下面的sql可以看到数据库的一些性能参数:

show status like 'param'

param可以取得值有:

Connections连接mysql服务器的次数

Uptime服务器上线时间

Slow_queries慢查询的次数

Com_select查询操作的次数

Com_insert插入操作的次数

Com_update更新操作的次数

Com_delete删除操作的次数

索引对查询的影响

1.使用like模糊查询

如果where条件中用like模糊查询,like ‘%abc’索引是不会起作用的,只有%不在第一个位置上索引才会起作用。

2.使用联合索引查询

要注意最左前缀规则,就是如果字段a、字段b、字段c为联合索引,只有where条件中包含字段a时才会起作用。

3.使用or关键字查询

or前后的两个条件都是索引的时候,索引才会起作用,查询效率才会提升

优化子查询

查询的时候尽量避免使用子查询,因为子查询会先把结果生成到一张临时表,再进行主查询。可以使用join连接代替子查询。

优化数据库结构

数据库结构涉及到库表涉及

1.库表不要设计太多字段,如果domain对象属性太多,可以拆成多张表

2.对于经常要联合查询的表可以建立中间表来提高效率

比如学生表中存有班级id,如果需要查询用户姓名和班级姓名,需要join操作。这种情况下可以新建一张表存储学生id、学生name、班级name,查询的时候就不需要join了,直接查询该表就行。

3.增加冗余字段

比如订单表中本来包含产品ID,但是把产品name也冗余进来,就可以在展示订单的时候,展示产品name。

分析表检查表优化表

1.分析表

analyze [local | no_write_to_binlog] table table_name

[]里面的参数是相同的作用,表示分析表的时候不写入日志。

2.检查表

check table table_name

3.优化表

optimize  [local | no_write_to_binlog] table table_name

主要用于消除删除和更新造成的文件碎片。

猜你喜欢

转载自nameethan.iteye.com/blog/2415752
今日推荐