MySQL故障排查与生产环境优化

目录

引言

一、故障排查

1.1 故障一

 1.2 故障二

1.3 故障三

1.4 故障四

1.5 故障五

1.6 故障六

1.7 故障七

1.8 故障八

1.9 故障九

1.10 故障十

1.11 故障十一

二、 生产环境优化

2.1 硬件优化

2.2 查询优化

总结


引言

MySQL是目前企业最常见的数据库之一,日常维护管理的过程中,会遇到很多故障,该文汇总了常见的故障,以增长MySQL的学习经验。另外,MySQL默认配置无法满足高性能要求。

一、故障排查

1.1 故障一

 1.2 故障二

1.3 故障三

1.4 故障四

 

1.5 故障五

 

1.6 故障六

1.7 故障七

 

1.8 故障八

1.9 故障九

1.10 故障十

1.11 故障十一

二、 生产环境优化

2.1 硬件优化

cpu:64 位、高主频、高缓存,高并行处理能力

内存:4GB以上的物理内存

磁盘: 15000转、RAID5、raid10、SSD固态硬盘 

2.2 查询优化

  1. 建表时表结构要合理,每个表不宜过大;在任何情况下均应使用最精确的类型。例如,如果ID列用int是一个好主意,    而用text类型则是个蠢办法;TIME列酌情使用DATE或者DATETIME。
  2. 索引,建立合适的索引。
  3. 查询时尽量减少逻辑运算(与运算、或运算、大于小于某值的运算);
  4. 减少不当的查询语句,不要查询应用中不需要的列,比如说 select * from  等操作。
  5. 减小事务包的大小;
  6. 将多个小的查询适当合并成一个大的查询,减少每次建立/关闭查询时的开销;
  7. 某些过于复杂的查询拆解成多个小查询,和上一条恰好相反。
  8. 建立和优化存储过程来代替大量的外部程序交互。

总结

索引就是一种MySQL的优化,从两个方面考虑:

软优化

1、查询语句的优化比如:select 结合order by [ascldesc]排序之后的limit查询适当使用子查询,结合连接表达式使用J0IN查询。

2、使用索引在适合创建索引的字段创建索引:经常与其他表进行连接的表,在连接字段上应该建立索引、建在选择性高的字段上、建在小字段上:在不适合创建索引的字段不要盲目创建索引:唯一性太差的字段、更新太频繁地字段、大的文本字段甚至超长字段,不要建立索引。

3、优化子查询

4、分析表

5、增加中间表

6、增加冗余字段

7、分析表,检查表,优化表

硬优化
1、分库分表

2、读写分离
对系统做分库分表、读写分离。通过缓存集群来承载大部分的读请求。(非关系型数据库)

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值