摘要:
某系统反馈慢SQL影响生产,查看SLOW LOG发现下面慢SQL: 设计表上索引情况如下: 查看执行计划为: 本着直觉判定使用索引ix_SEND_FLAG但影响行数为54292步骤存在问题,虽然过滤条件中包含SEND_FLAG=0且列SEND_FLAG上有索引,但选择性较差,初步断定查询走错索引导致 阅读全文
摘要:
在事务插入数据过程中,为防止其他事务向索引上该位置插入数据,会在插入之前先申请插入意向范围锁,而如果申请插入意向范围锁被阻塞,则事务处于gap before rec insert intention waiting的等待状态。 MySQL官方文档解释如下: 准备测试数据: 先执行事务(事务13286 阅读全文
摘要:
查看表主键信息 查看无主键表 无主键表 在Innodb存储引擎中,每张表都会有主键,数据按照主键顺序组织存放,该类表成为索引组织表 Index Ogranized Table 如果表定义时没有显示定义主键,则会按照以下方式选择或创建主键: 如果主键索引只有一个索引键,那么可以使用_rowid来显示主 阅读全文
摘要:
参数说明 innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数,不同参数设置对磁盘IO影响不同。 参数innodb_flush_log_at_trx_commit 图片来源于:https://www.h3 阅读全文
摘要:
分区表历史 分区策略 MySQL 5.7分区增强 分区表优点 分区表缺点 个人见解 对于SQL Server和Oracle这些商业数据库,由于商业授权导致横向扩展成本较高,且分区表功能稳定,因此通过硬件扩展和分区来承担大数据量带来的负载,而对于MySQL,互联网企业有资源有能力将很多需求迁移到数据库 阅读全文
摘要:
初始化数据: 查看当前表中数据: 测试1: 上面测试中发现: 1、where c2=1429.5 or c2<1429.5 与 where c2<=1429.5 和 where c2=1429.5查询结果相同 2、where c2<=1429.5的查询结果中不包含where c2=1429.5的查询 阅读全文
摘要:
在MySQL中,无论是字符串转换为时间还是时间转换为字符串,都需要使用到时间格式: 日期或时间转换为字符串: 字符串转时间: 不同国家使用不同的时间格式,可以使用get_format函数获取默认时间格式。 get_format函数用法: 如获取USA的默认时间格式 阅读全文
摘要:
隐式类型转换 在官方文档中对隐式类型转换规则有如下描述: 翻译为中文: 由于Float是浮点数,在MySQL中存储的是近似值,当不指定Float的长度和小数位数时,无法使用精确查找进行匹配,执行返回数据为空,查询显示警告信息Empty set。 解决办法: 浮点数近似值问题演示: 阅读全文
摘要:
MegaRAID信息查看 HP RAID信息查看 MegaRAID修改写缓存 HP RAID修改写缓存 简易版的RAID检查脚本: 阅读全文
摘要:
MegaCli查看RAID级别: RAID 5输出: 服务器上配置8块300GB的HDD盘,其中使用7块做数据盘(RAID5),因此Number Of Drives为7,而Span Depth为1,剩余1块盘做热备盘,当数据盘发生故障后,热备盘会自动替换发生故障的数据盘,而故障盘被新盘替换后,新盘作 阅读全文