Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql查询-更快?_Mysql_Sql - Fatal编程技术网

Mysql查询-更快?

Mysql查询-更快?,mysql,sql,Mysql,Sql,所以我有一个MySQL查询,由于我有很多记录,速度变得非常慢,使用该软件的计算机(收银机)也没有那么强大。 有没有办法得到同样的结果,但更快?非常感谢您的帮助 SELECT d.sifra, COUNT(d.sifra) AS pogosti, c.*, s.Stevilka as Stev_sk FROM Cenik c, dnevna d, Podskupina s WHERE d.sifra = c.Sifra AND d.datum >= DATE(DATE_SUB(NOW(),

所以我有一个MySQL查询,由于我有很多记录,速度变得非常慢,使用该软件的计算机(收银机)也没有那么强大。 有没有办法得到同样的结果,但更快?非常感谢您的帮助

SELECT d.sifra, COUNT(d.sifra) AS pogosti, c.*, s.Stevilka as Stev_sk FROM Cenik c, dnevna d, Podskupina s 
WHERE d.sifra = c.Sifra AND d.datum >= DATE(DATE_SUB(NOW(),INTERVAL 3 DAY))
GROUP BY d.sifra ORDER BY pogosti DESC limit 27

你试过索引吗

您在WHERE中使用c.Sifra,因此您可能需要

CREATE INDEX Cenik_Sifra ON Cenik(Sifra);
您还可以使用来自dnevna的数据和sifra,数据是您的选择,所以

CREATE INDEX dnevna_ndx ON dnevna(datum, sifra);
最后,在Podskupina上没有连接条件,你从那里画Stevilka。这是一张固定的桌子吗?实际上,您只是在计算Podskupina中的行数和/或从中获取一个未指定的值,除非它只有一行

在MySQL的某些版本上,您可能会发现预计算数据的好处:

SELECT @datum := DATE(DATE_SUB(NOW(), INTERVAL 3 DAY))
然后在查询中使用@datum。这可能会提高其获得良好索引性能的机会

但是,如果不了解更多有关表的结构和基数的信息,就很难做到这一点

至少你应该把结果公布出来

EXPLAIN SELECT...(your select)

在问题中。

您没有条件加入Podskupina s,您得到了交叉连接(all to all),因此您从join“d.sifra=c.sifra”中得到x行,乘以Podskupina s的y行

这看起来是一个非常有问题的查询。您真的需要返回所有的c.*?Podskupina上的连接或过滤器在哪里?收紧查询后,请确保在表上创建了良好的索引。例如,假设您已经在一个唯一ID上获得了一个聚集索引作为dnevna中的主键,那么在sifra和DATA列上放置一个辅助索引通常会提高性能

与s交叉连接有什么意义?您不能交叉连接,只需乘以s中的行数,就可以得到相同的计数。要得到更具体的答案,请提供相关表格的定义和一些相关的示例数据。简单规则:在
FROM
子句中不要使用逗号;始终使用显式的
JOIN
语法。我不知道我怎么会错过这个,但正如你所说,预先计算日期已经产生了巨大的影响!现在足够快了!问题是查询是在填充按钮的循环中使用的,这使得查询速度非常慢。。但现在一切都好了,多亏了你。无论如何,谢谢你的帮助!!