全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:4009-999-999

面试官问:MySQL上亿大表如何优化?

  (微信小程序): 5000+ 道面试题和选择题, 真实面经 , 简历模版 ,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计、大厂真题等,在线随时刷题!

  XX 实例(一主一从)xxx 告警中每天凌晨在报 SLA 报警,该报警的意思是存在一定的主从延迟。(若在此时发生主从切换,需要长时间才可以完成切换,要追延迟来保证主从数据的一致性)。

  XX 实例的慢查询数量最多(执行时间超过 1s 的 SQL 会被记录),XX 应用那方每天晚上在做删除一个月前数据的任务。

  最近一个星期内,总共记录的慢查询执行花费时间为 25403s,最大的慢 SQL 执行时间为 266s,平均每个慢 SQL 执行时间 5s,平均扫描的行数为 1766 万。面试宝典:

  select arrival_record 慢查询语句都类似于如下所示,where 语句中的参数字段是一样的,传入的参数值不一样:

  select arrival_record 语句在 MySQL 中最多扫描的行数为 5600 万、平均扫描的行数为 172 万,推断由于扫描的行数多导致的执行时间长。

  ①该表总记录数约 1 亿多条,表上只有一个复合索引,product_id 字段基数很小,选择性不好。

  该 delete 操作平均扫描行数为 1.1 亿行,平均执行时间是 262s。

  该 delete 语句没有使用索引(没有合适的索引可用),走的全表扫描,导致执行时间长。

  拷贝 arrival_record 表到测试实例上进行删除重新索引操作。

  磁盘占用空间 48G,MySQL 中该表大小为 31G,存在 17G 左右的碎片,大多由于删除操作造成的。(记录被删除了,空间没有回收)

  并行压缩备份所花时间(52s)和占用空间(1.2G,实际该表占用磁盘空间为 48G,mydumper 并行压缩备份压缩比相当高):

  由于是一主一从实例,应用是连接的 vip,删除重建索引采用 online DDL 来做。公众 号Java精选,回复java面试,获取面试资料,支持在线刷题。

  停止主从复制后,先在从实例上做(不记录 binlog),主从切换,再在新切换的从实例上做(不记录 binlog):

  应用端已优化成每次删除 10 分钟的数据(每次执行时间 1s 左右),xxx 中没在出现 SLA(主从延迟告警):

  表数据量太大时,除了关注访问该表的响应时间外,还要关注对该表的维护成本(如做 DDL 表更时间太长,delete 历史数据)。

  对大表进行 DDL 操作时,要考虑表的实际情况(如对该表的并发表,是否有外键)来选择合适的 DDL 变更方式。

  对大数据量表进行 delete,用小批量删除的方式,减少对主实例的压力和主从延迟。

  公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!

  最近有很多人问,有没有读者交流群!加入方式很简单,公众号Java精选,回复“加群”,即可入群!

  特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源项目与高效率软件的公众号,「大咖笔记」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片关注。

  特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

  马斯克发帖:如果人类成为星际物种,将可能延续数百万年,否则可能只有几百年

  阿森纳3-0双杀布莱顿 11轮不败轰38球+暂1分优势登顶 哈弗茨传射

  中兴 U10S Pro 随身 WiFi 盈盈粉配色开售,首发价 249 元

  小米 Redmi Pad Pro 平板亮相开启预约,随 Turbo 3 手机一同发布


本文由:m6米乐安装提供

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。