mysql 查询慢,如何优化

xuejie09242 2017-04-11 04:39:32
系统 环境:Windows Server 2008R2,8G内存
mysql版本:5.7.14
最近做数据处理的应用,接入外部数据库,数据多的表在千万级别。
在大表上查询非常慢,一般都在5分钟以上,连count(*)也要1分钟左右,对列用函数就更差了,源表有主键,没有索引。
请问服务器配置文件那如何设置,如何进行优化?
...全文
334 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujinqiang 2017-04-17
  • 打赏
  • 举报
回复
8G内存。。。 楼主要跑数据多的表在千万级别。快不了吧
xuejie09242 2017-04-12
  • 打赏
  • 举报
回复
求解。。。。。。
  • 打赏
  • 举报
回复
刚才看了你的机器内存只有8G,建议至少在加个8G,我家里的台式机内存也有16G
  • 打赏
  • 举报
回复
这个要针对具体问题具体分析。 你的数据量有几千万,count(*)要1分钟,这个是有点慢了,我们公司之前一个项目单表有5亿条,count(*)也不需要1分钟。。。 要加快查询速度,首先的把innodb_buffer配置大一点,一般就是系统内存的70%左右,把数据都缓存在内存中,查询速度自然就能快。 另外,就是创建合适的索引。但并不说建了索引,就一定会快,还得看你的语句加上查询条件后,返回多少数据。 如果你有几千万数据,需要返回几百万,那么建了索引并没有什么用处,这个时候可以考虑把数据结存到其他表里,来加快速度,或者分表,不过考虑到你的数据时千万级的,估计分表还暂时用不上。 再就是,简化sql,如果你的sql非常复杂,那么怎么调整参数,都会慢,快不了,所以必须要优化sql。
二月十六 2017-04-12
  • 打赏
  • 举报
回复
这个很多种处理方式了吧。。 1、建索引。 2、读写分离。 3、分区表。 4、业务、数据分布式。 5、水平切割数据做分布式。 。。。。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧