MySQL5:性能优化

前端之家收集整理的这篇文章主要介绍了MySQL5:性能优化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

性能优化

MysqL数据库数据库管理员数据库开发人员的必备技能。MysqL优化,一方面是找出系统的瓶颈,提高MysqL数据库的整体性能;一方面需要合理的结构设计和参数调整,以提高用户操作响应的速度;同时应该尽可能节省系统资源,以便系统可以提供更大负荷的服务。

MysqL数据库优化是多方面的,有几条优化原则:

增加系统的反应速度

查询

查询的影响

查询的时候:


查询速度自然比不使用索引快。而且possible_keys和key的值都是BkNameIdx,说明查询时使用了BkNameIdx索引

查询

查询有几种特殊情况,特别提一下:

查询语句

查询的查询语句中,如果匹配字符串的第一个字符为"%",索引不会起作用,只有"%"不在第一个位置,索引才会起作用

查询语句

MysqL可以为多个字段创建索引,一个索引可以包含16个字段,对于多列索引,只有查询条件中使用了这些字段中第一个字段时,索引才会被使用

查询语句

查询语句的查询条件中只有OR关键字,且OR前后两个条件都是索引时,查询才会使用索引,否则,查询将不使用索引

查询会变得越慢,始终指定需要的列,是一个良好的习惯

数据库里的每张表都设置一个ID作为其主键,而且最好是一个INT型的,并设置上自动增加的AUTO_INCREMENT标识。就算有些VARCHAR字段类型的值,它永远不会重复,也不要设置为主键,使用VARCHAR类型来当主键会使性能下降

数据库结构优化

数据库设计方案对于数据库性能常常会起到事半功倍的效果,合理的数据库结构不仅可以使数据库占用更小的磁盘空间,而且能够使查询速度更快。数据库结构的设计,需要考虑数据冗余、查询和更新的速度、字段的数据类型是否合理等多方面内容

数据库结构的建议:

查询效率

增加中间表

查询的表,可以建立中间表以提高查询效率。通过建立中间表,把需要经常联合查询的数据插入到中间表,然后将原来的联合查询改为对中间表的查询,以此来提高查询效率

MysqL会对插入的记录进行唯一性校验。这种唯一性校验也会降低插入记录的速度,为了降低这种情况对查询速度的影响,可以在插入记录之前禁用唯一性检查,等到记录插入完毕之后再开启:

UNIQUE_CHECKS ;

开启唯一性检查:

UNIQUE_CHECKS ;

(2)禁用外键检查

插入数据之前禁止对外键的检查,数据插入之后再恢复对外键的检查,禁用外键检查的语句如下:

foreign_key_checks ;

恢复对外键检查的语句为:

foreign_key_checks ;

(3)禁止自动提交

插入数据之前禁止事物的自动提交,数据导入完成之后,执行恢复自动提交操作。禁止自动提交的语句如下:

autocommit ;

恢复自动提交的语句为:

autocommit ;

猜你在找的MySQL相关文章