请教一下高频率读写的情况下,mysql应该如何优化?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

请教一下高频率读写的情况下,mysql应该如何优化?

2016-03-10 15:13:17 2744 1

需求是这样的:目前手头项目有个帮用户发送点对点短信的功能,用户一次可能发送几千或上万条短信,服务端接受用户的发送任务后,使用一个待发池慢慢帮用户发。但是页面上用户需要能实时查询短信的发送任务的情况:比如本次发送任务的成功数,失败数,发送任务的状态(全部发完,或正在发送中), 任务中每条短信当前状态(待发送,发送成功,发送失败)等。每条短信发出后,外系统会异步地将状态报告回来

目前数据库结构是这样的:

数据库是Mysql,存储引擎Innodb,除了主键外键外还没有加其他索引

涉及到几张表:

短信发送任务表:记录用户提交的发送任务,字段有:短信内容,发送数,成功数失败数(明细表状态变更后要重新计算)整个任务的状态,短信内容
短信明细表:记录具体每条短信的发送情况,字段有: 所属短信任务id(外键关联到任务表),接收方号码,发送状态(外系统状态报告过来后需要实时更新)
待发池表:结构与短信明细表类似,用来储存发送队列,调用外系统接口发送后,删除记录。

现在遇到的问题是:如果将待发池发送量调大,短信明细表 跟 短信发送任务表 读写会非常频繁(特别是发送任务表里的成功数与失败数,量大了经常因为行锁而访问不了,或者最后数量上统计出错,成功数+失败数!=发送数)

我想问下:这种情况下,该对数据库如何优化?加索引?读写分离?还是直接把读写频繁这些字段搬出来放到memcache之类的缓存里,再定时持久化回mysql?

取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 18:57:44

    1、数据放进缓存里,到达一定条件时存储到mysql一次,比如一万条信息的发送记录

    2、采用SSD硬盘

    3、发送列表不要实时更新

    4、如果插入频繁还是不要加其他索引的好,毕竟几千条数据,人家只看总结,不看具体

    0 0
相关问答

1

回答

请问为什么我进行mysql数据update时,kafka中采集到的是先删除原纪录(op d)再新增新

2022-07-22 11:59:35 120浏览量 回答数 1

0

回答

我想问一下,我flink作业是以upsert-kafka的方式写入数据的,但是我在mysql里面去更

2022-07-22 15:49:03 265浏览量 回答数 0

1

回答

请问一下大佬,flink 如何做到 mysql 数据库与elastic search的数据实时同步

2022-07-20 17:40:41 249浏览量 回答数 1

0

回答

咨询个问题,我通过git上的demo读取mysql的数据,但是一直报错,我项目中是有这个包的。。怎么

2022-07-19 15:59:49 102浏览量 回答数 0

0

回答

各位老板 问一下 就是我们mysql cdc保存的是配置数据 然后kafka里面堆积的有历史

2022-07-18 14:46:17 125浏览量 回答数 0

1

回答

请教一个问题, FLinkCDC同步mysql的数据,必须要root权限吗?

2022-07-15 13:26:19 101浏览量 回答数 1

0

回答

mysql多表合成宽表同步到hbase,数据少几十条是什么原因

2022-07-15 13:26:19 102浏览量 回答数 0

1

回答

请问政务网服务器的mysql数据已经与dataworks开通网络策略,但是测试还是说数据库测试连通性

2022-07-15 13:27:54 166浏览量 回答数 1

1

回答

dataworks同步数据到兼容mysql协议中间件 ,速度很慢,加了带宽也无明显提速,怎么办?

2022-07-15 18:37:44 729浏览量 回答数 1

0

回答

请教一下,如果我同步的是mysql binlog的数据 并且没有加特定的日志,我怎么查看当前程序同步

2022-07-13 14:12:11 113浏览量 回答数 0
2709
文章
6591
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载