如何在MySQL中通过排序和分页优化查询速度?

如何在MySQL中通过排序和分页优化查询速度?,mysql,Mysql,下面是基本的mysql查询: SELECT * FROM <table> WHERE <conditions> ORDER BY create_time DESC LIMIT X, Y; 选择 * 从…起 哪里 按创建时间描述订购 极限X,Y; 我想知道如何优化查询速度,前提是此表中的记录量约为200万条。任何建议都将不胜感激。非常感谢 加快进程的一种方法是创建索引 为字段创建一个索引,您认为该索引将 mostly used for look up

下面是基本的mysql查询:

SELECT 
  * 
FROM
  <table> 
WHERE <conditions>
ORDER BY create_time DESC 
LIMIT X, Y;
选择
* 
从…起
哪里
按创建时间描述订购
极限X,Y;

我想知道如何优化查询速度,前提是此表中的记录量约为200万条。任何建议都将不胜感激。非常感谢

加快进程的一种方法是创建索引

字段创建一个
索引
,您认为该索引将

 mostly used for look up process.
所以,您认为Where子句中最常用的字段是,为该字段创建一个索引

这将加快整个过程

注意:

如果它是该表的主键,则无需创建索引,因为它将自动创建

更新:


希望这有帮助

在获取记录时总是建议使用索引,这样可以使查询执行更快、更高效。如果您使用的是
where
关键字,很明显,抓取过程将过滤您的条件数据并为您抓取。有关mysql的更多信息


希望它能对您有所帮助。

考虑到查询的工作原理,您可能希望尝试CodeReview()来优化它。因此,我可以这样理解:如果没有
where
部分,此查询可以提供相当不错的速度来处理如此多的记录?如果没有where子句,显然,不需要任何查找过程或搜索过程。因此,它盲目地获取所有确实具有较高检索率的记录。在我的查询中有
orderby
子句。如你所见,我打算按创建时间进行排序。速度将受到排序过程的影响,不是吗?使用搜索字段和orderby创建索引。这样它就可以按照特定顺序跟踪记录。因此,为
创建时间
创建
索引。是否需要为
order by
子句中的项目创建索引?在这种情况下,CuraTyTimeTime:这取决于,但您也可以创建。除了主键,我们需要考虑某些元素。您可以选择非集群索引。