Mysql性能优化、使用总结记录

“积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以致千里;不积小流,无以成江海。骐骥一跃,不能十步,驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇蟮之穴无可寄托者,用心躁也。是故无冥冥之志者,无昭昭之明;无昏昏之事者,无赫赫之功。行衢道不至,事两君者不容。目不能两视而明,耳不能两听而聪。螣蛇无足而飞,梧鼠五技而穷。诗曰:“尸鸠在桑,其子七兮。淑人君子,其仪一兮。其仪一兮。心如结兮。”故君子结于一也。”——荀子《劝学篇》


一、题记:

这里主要记录自己工作时在使用mysql过程中考虑的事项、解决问题收集的参考资料和学习过程,以供自己日后备查和初级同学参考。数据库优化经验还是得多向专业DBA学习,不敢班门弄斧~

二、整理:

  • 1.创建表&写SQL时(每一点都有为什么):
    1>注意各存储引擎的区别和选择(5.1老版本前默认是MyISAM,新版本默认InnoDB)
    2>选择精确、适合的数据类型(如典型的IP、时间)
    3>所有字段都非空,给予默认值,尽量不使用NULL(索引的影响)
    4>表尽量有功能说明,每列也尽量有功能comment注释(方便自己方便他人)
    5>针对Innodb表,尽量不执行SELECT COUNT(*)语句
    6>把拖沓复杂,速度慢的的查询分解成多个简洁明了的查询,尽管查询多次,但总体效率却可能反而更高,且减少锁表可能
    7>执行查询时,尽量不使用外部函数(破坏使用索引)
    8>在索引字段上使用 LIKE 查询时,左边不要使用 ‘%’ 修饰符(否则走不到索引)
    9>多用Explain分析SQL执行过程

  • 2.使用Explain优化SQL:
    1>order by优化
    2>group by优化
    3>limit优化
    4>更多…

  • 3.服务器运行状态查看:
    1>使用show status,优化参考
    2>使用show process

  • 4.服务器优化:
    MySQL数据库常见的2个瓶颈是CPU和I/O,CPU在饱和时候一般发生在数据装入内存或从磁盘上读取数据时。磁盘I/O瓶颈发生在装入数据远大于内存容量时,如果应用分布在网络上,那么当查询量相当大时那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态

    1>了解服务器重要配置,如wait_timeout、max_connections、innodb_page_size、innodb_sort_buffer_size等,参考官方手册
    2>参考阿里DBA简朝阳优化

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值