mysql 5.7单表300万数据,性能严重下降,如何破?
环境:
DB: mysql 5.7.xx
OS: windows server 2012 r2
CPU: E3 1220-V5
内存: 4G。
数据库配置(基本上是默认配置):
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
innodb_buffer_pool_size = 128M
表现:
有个表service_log,
其中有ID, DIAL_NUMBER, contact_name, contact_result, remark, CREATE_TIME等20多个常规字段。ID是PK,在contact_name,create_time等列上建有单独索引。
此表每日产生的新数据大概在1万左右,目前有数据近300万。
有一个查询,查询字段较多:
select id, dial_number, contact_name ....
from service_log
where create_time between '2016-10-01' and '2016-10-02'
从300万数据中,查询出近8000条数据,耗时大概在40秒左右。
查看执行计划,已经用了create_time上的索引。
显然这个效率很难接受,但是索引已经用上,实在想不出其他办法了。
请问除了分区,还有什么好办法吗?
相关阅读:
Rxjs监听文件控件问题
Javascript所有语句都是异步执行的吗?
PhpStorm如何在本地删除文件时同步删除服务器端的同一文件?
混合移动应用 app (android)调用原生方法时总会先黑屏不知道怎么解决,求大神指教。
thinkPHP 的 I('get.') 的过滤函数写在哪?
http2服务端推送问题
vs code这个编辑器,如果高亮显示对应的标签?
如何把一个集合,转换成固定格式的文件流 ?
中国省市的JSON数据获取,市区获取不到对应名称而显示的是Unicode编码?
java怎么打印每个对象的内存地址呢?hashcode能代表内存地址的不同吗?
微信小程序的AES和RAS加密
两表关联查询,按条件筛选结果
audio莫名其妙的问题?
关于给上边距出现的问题
谷歌浏览器安装vue.js devtools后不能调试,并且弹出提示消息?
a,b表在数据量差距大的情况下的连接查询
antd upload组件怎么在beforeUpload方法里动态赋予组件的上传参数data?
C# Telerik的 RadCartesianChart控件 怎么画虚线,在LineSeries里面哪个属性是设置虚线的?
Vue 怎样让页面回到顶部?
怎么查询每个userId中updateAt最大的值