Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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_Query Optimization - Fatal编程技术网

MySql,我不确定我的索引是否正确,或者我是否可以提高查询速度?

MySql,我不确定我的索引是否正确,或者我是否可以提高查询速度?,mysql,sql,query-optimization,Mysql,Sql,Query Optimization,我的查询是选择一个日期和一个数字键范围,我不确定我是否能在这方面有所改进,但我想我会问。我希望提高速度 我实际上运行了两个非常相似的查询,一个用于计数,另一个用于获取有限制的记录 SELECT count(Pads.PadID) AS CountOfPadID FROM Pads WHERE ((RemoveMeDate= '2001-01-01 00:00:00') AND (catid between 0 and 11)) ORDER BY VersionAddDate DESC; SE

我的查询是选择一个日期和一个数字键范围,我不确定我是否能在这方面有所改进,但我想我会问。我希望提高速度

我实际上运行了两个非常相似的查询,一个用于计数,另一个用于获取有限制的记录

SELECT count(Pads.PadID) AS CountOfPadID FROM Pads WHERE ((RemoveMeDate=
'2001-01-01 00:00:00') AND (catid between 0 and 11)) 
ORDER BY VersionAddDate DESC;

SELECT PadID, CatID, IconSoureURL, OsStr, ProgramName, PageName, ProgramVersion, 
left(English450,650) as English450, English45, ProgHomeURL, DownloadURL, License,
ReleaseStatus FROM Pads WHERE RemoveMeDate='2001-01-01 00:00:00' AND catid 
between 0 and 11 ORDER BY VersionAddDate DESC LIMIT 0,20;
是的,范围可以改变,可以是100到111

我的第一个查询需要0.6秒,奇怪的是,第二个查询非常快,即使使用SQL\u NO\u缓存

这是第一个查询的解释结果。

这是我目前的索引
两个查询返回相同的数据,可能是不同的顺序。但是它们在磁盘/表空间/可能也是相同的索引上接触相同的数据。请您为查询2解释一下。第一个查询实际上为您预热缓存,它将在内存中获取数据,所以第二个查询很快

我们能让它更快吗?可能它已经非常快了,它只看了3条记录,所以索引是完美的。第一个查询可能是在冷缓存/缓冲假脱机上完成的。下次进行基准测试时,首先通过运行一些随机查询和检查来预热缓存

正如@Scrum-Meister所建议的,您可以删除index-RemoveMeDate,它将加快插入速度,如果现在使用它,将减少一些内存压力

检查是否需要调整服务器/存储引擎本身,以充分利用可用硬件并使服务器快速运行

您可以删除单列RemoveMeDatw上的索引RemoveMeDate,它将被以RemoveMeDate开头的其他索引覆盖