Mysql性能优化(四)--MySQL优化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql性能优化(四)--MySQL优化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2287字,纯文字阅读大概需要4分钟。
内容图文
![Mysql性能优化(四)--MySQL优化](/upload/InfoBanner/zyjiaocheng/522/85836091dbaf40a9b9574626604e58ed.jpg)
Mysql 优化
一、使用索引进行优化
在mysql中,创建数据表后会生成数据文件,索引文件,后缀名为.MYI的文件就是索引文件。索引的原理就是通过空间换取时间,所以索引并不是建立的越多越好。
我们可以通过explain的结果来分析该查询语句是否使用了索引。通过查看type,extra和rows的结果是可以看出来的。
type的结果为all表示肯定没有使用索引;
extra的结果中如果是using index则表示使用了索引,如果extra的结果为空则表示没有使用索引。
rows的结果如果等于全表行数,则也表示索引没有被使用。
举例说明:
eg1、没有使用索引的结果:
在这里的结果中type是为all,表示进行的是全表扫描,rows的结果为7,涉及的行数为全表的行数;
eg2、使用了索引的结果:
创建了索引后,type的结果为ref,不再是all,表示至少使用了一个索引,rows中涉及的行数为1,而不是全表的行数;此时SQL语句的性能得到明显的提升;
二、Mysql server优化
2.1 innodb存储引擎内存进行优化;
innodb是用一块内存区做IO缓存池,该缓存池用来缓存innodb的索引块和缓存innodb的数据块;
Innodb_buffer_pool_size: 该变量决定了innodb存储引擎表数据和索引数据的最大缓存区大小,设置比较合理的话,能提高事务操作的效率;
Innodb_log_buffer_size: 该变量决定了innodb重做日志缓存的大小,对于可能产生大量更新记录的事务,增加Innodb_log_buffer_size的大小,可以避免innodb在事务提交前就执行不必要的日志写入磁盘操作。
2.2 修改并发相关的参数
A、调整max_connections,提高并发连接数;
B、调整thread_cache_size,加快连接数据库的速度,mysql会缓存一定数量的客户服务线程以备重用,通过thread_cache_size可控制mysql缓存客户服务线程的数量
C、innodb_lock_wait_timeout: 控制innodb事务等待行锁的时间,对于快速处理的sql语句,可以将行锁的等待超时时间调小,以避免事务长时间挂起,对于后台运行的批处理操作,可以让等待超时时间调大,以避免发生大的回滚操作;
三、应用程序优化
3.1、访问数据库时采用连接池
3.2、采用缓存减少对于mysql的访问
A、避免对同一个数据库做重复检索
在编写sql的时候,对同一个表尽可能
B、使用查询缓存
C、缓存参数的配置
Query_cache_type:是否打开缓存
Query_cache_size: 缓存使用的内存空间大小
Query_cache_min_res_unit: 分配内存块时的最小单位大小
Query_cache_limit:mysql能够缓存的最大结果,如果超出,则增加qcache_not_cached的值,并删除查询结果;
3.3、使用负载均衡机制
Mysql性能优化(四)--MySQL优化
标签:ima 提高 写入 后缀名 img 更新 磁盘 缓存 存储
本文系统来源:https://www.cnblogs.com/luoman/p/12692153.html
内容总结
以上是互联网集市为您收集整理的Mysql性能优化(四)--MySQL优化全部内容,希望文章能够帮你解决Mysql性能优化(四)--MySQL优化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。