永发信息网

请教高人:有一个超级大的数据表(四千万条数据)有10G这么大,想提高查询效率.

答案:4  悬赏:60  手机版
解决时间 2021-01-15 03:51
  • 提问者网友:活着好累
  • 2021-01-14 11:13
请教高人:有一个超级大的数据表(四千万条数据)有10G这么大,想提高查询效率.
最佳答案
  • 五星知识达人网友:执傲
  • 2021-01-14 12:45
你的数据库是一个不断更新的数据表,需要不断地进行“表分析”。
因为数据在变,虽然你做了很多索引,但索引的命中率很重要,随着数据的变化和增加,
在没有进行表分析的前提下,索引的效率会下降,到达一定的程度,数据库会自动放弃索引,
而采用数据扫描的方式。

因此,建议定义一个每天运行的任务,时间定在业务最空闲的时段,然后任务重执行analyze table 之类的语句。(关于表分析,网上可以搜索很锁专业文章。)
就可以的到很大提高了。
全部回答
  • 1楼网友:动情书生
  • 2021-01-14 15:00
个人觉得 建物化视图比较好,我们平时遇到数据量比较大的话也是用物化视图来实现的追问我可以把复杂SQL的查询结果建立成一个物化视图吗?追答我昨天想了下,这个建物化视图没什么用,如果是查询慢的话:1 可以进行表合理的拆分。
2 建索引,这个你已经做了
3 优化sql语句 。
4 表分区处理
  • 2楼网友:忘川信使
  • 2021-01-14 13:47
如果不是所有的数据都要显示出来,你可以查询最近一个月或前100笔数据。追问对所有数据进行统计,包含多种聚合函数。追答数据统计分析一般不是放在另外一个表中吗,
数据多当然慢了,看能不能拆分
  • 3楼网友:孤老序
  • 2021-01-14 13:27
数百行复杂SQL
考虑把复杂sql用若干个简单sql代替。没有具体的sql,谁也不知道这个慢的原因。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯