创建唯一索引
的字段,不能为NULL 否则 唯一索引失效
逻辑删除的表,不方便建 唯一索引
逻辑删除表
加个字段:deleteID 默认值为1
逻辑删除时,给deleteID设为当前的主键ID
把 name,model,deleteStatus,deleteID
四个字段同时做成唯一索引
任何一个字段
数值不同
代表不是相同的数据, 可以保证数据唯一性
当数据库的读或者 写的QPS过高
,导致数据库连接不足
,考虑分库,增加 数据库实例的方式,提供更多的数据库连接提升系统并发度
当单表数据量非常大,因为并发不高,数据库的连接可能还够
,但存储和查询性能遇到瓶颈,考虑水平分表,将数据 拆分到多张表中,减少单表的数据量
假设 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_neighbors
为0
,让他每次 别刷临近缓存页,减少要刷缓存页的数量