唯一索引的坑、分库分表、MySQL频繁抖动

唯一索引

创建唯一索引的字段,不能为NULL 否则 唯一索引失效

逻辑删除的表,不方便建 唯一索引

逻辑删除表加个字段:deleteID 默认值为1
逻辑删除时,给deleteID设为当前的主键ID

name,model,deleteStatus,deleteID四个字段同时做成唯一索引

任何一个字段数值不同代表不是相同的数据, 可以保证数据唯一性

分库分表

只分库不分表

当数据库的读或者 写的QPS过高,导致数据库连接不足,考虑分库,增加 数据库实例的方式,提供更多的数据库连接提升系统并发度

不分库只分表

当单表数据量非常大,因为并发不高,数据库的连接可能还够,但存储和查询性能遇到瓶颈,考虑水平分表,将数据 拆分到多张表中,减少单表的数据量

分库也分表

  1. 数据库的读或者 写的QPS过高,导致数据库连接不足
  2. 单表数据量非常大

MySQL频繁抖动的性能优化

假设 SSD能承载的随机 I/O 600 次/s,结果你把数据库的 innodb_io_capacity就设为300,即刷盘时随机I/O最多执行300次/s,那你速度就还是很慢啊,根本没压榨完SSD随机I/O性能

所以推荐对DB部署机器的SSD能承载的最大随机I/O速率做个测试fio工具常用来 测试磁盘最大随机I/O速率

即MySQL性能随机抖动问题,关键就是:

innodb_io_capacity 设为SSD 固态硬盘的IOPS,让他刷缓存页尽量快

同时设置 innodb_flush_neighbors0,让他每次 别刷临近缓存页,减少要刷缓存页的数量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值