mysql,有一张表里面已经有几千万条数据了,网页访问时极其缓慢,如何提高检索速度?(mysql服务查询慢怎么优化)
mysql,有一张表里面已经有几千万条数据了,网页访问时极其缓慢,如何提高检索速度?
一般查询的话应该有常用的语句的。
(图片来源网络,侵删)比如常见查询为:
select * from factdata where user='a' and module='b' and dtime between '2012-11-01 00:10:00' and '2012-11-01 00:11:10';
那么你这时候需要在factdata表上建立(user,module,dtime)的联合索引。
(图片来源网络,侵删)alter table factdata add index i_merge(`user`,`module`,`dtime`);
你可以执行
explain select * from factdata where user='a' and module='b' and dtime between '2012-11-01 00:10:00' and '2012-11-01 00:11:10';
(图片来源网络,侵删)查看建立索引前面的返回的结果。
mysqlsum查询速度很慢?
这个问题和设计有关系,简单的sql优化提升不了多少,但是这个sql还是可以进一步优化的
利用索引,用unionall代替in,如select*fromtabwhereidin(1,2),可写成select*fromtabwhereid=1unionall
select*fromtabwhereid=2
但是上面的优化起不到根本效果,如果100万1000万数据怎么办,难道每次都要全部查出来嘛,那是不可能的,而且你的页面也不能全部都展示出来!所有需要换个思路,如,将一个会员的订单记录查询出来,然后通过程序(java或者存储过程)算出时间差,按照上面再计算下一个会员;
如何开启MySQL慢查询日志?
shell>mysql -u root -p #输入密码 mysql>show variables like "%slow%"; #检查下面几条参数 slow_query_log #这个是表示的slow log有没开 slow_query_log_file #这个是slow log的地址 #然后直接vim 那个文件就可以了
mysql使用groupby和order导致速度很慢,请问该怎样优化?
1、使用用索引 注意有些情况下不能够使用索引来提高Order By语句的查询性能。
这里需要注意的是,并不是任何情况下都能够通过使用索引来提高Order Byz子句的查询效率。
如对不同的关键字使用这个语句、混合使用ASC模式和DESC模式、用于查询条件的
到此,以上就是小编对于mysql查询慢的优化方案的问题就介绍到这了,希望这4点解答对大家有用。