mysql,有一张表里面已经有几千万条数据了,网页访问时极其缓慢,如何提高检索速度?

 我来答
猪八戒网
2023-06-06 · 百度认证:重庆猪八戒网络有限公司官方账号
猪八戒网
猪八戒网(zbj.com)创建于2006年,现已形成猪八戒网、天蓬网和线下八戒工场的“双平台+一社区”服务模式,是中国领先的人才共享平台。
向TA提问
展开全部

一般查询的话应该有常用的语句的。

比如常见查询为:

select*fromfactdatawhereuser='a'andmodule='b'anddtimebetween'2012-11-0100:10:00'and'2012-11-0100:11:10';


那么你这时候需要在factdata表上建立(user,module,dtime)的联合索引。

altertablefactdataaddindexi_merge(`user`,`module`,`dtime`);


你可以执行

explainselect*fromfactdatawhereuser='a'andmodule='b'anddtimebetween'2012-11-0100:10:00'and'2012-11-0100:11:10';

查看建立索引前面的返回的结果。


假如没有索引的话,explain会显示返回查询全表的数据自然会很慢了。

假如用到了索引的话,可以快速的找到需要查询的区间里的数据,往往需要查询的数据量是全表的1/100,1/1000,那么这时候花费的时间就是1/100,1/1000了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式