php - 如何加快分页所需的MySQL查询-表中万条记录

标签 php mysql

大约有 100 万条记录。 分页系统需要查询。

查询看起来像这样:

SELECT field1, field2, field3 FROM table 
WHERE field4 = '$value' 
ORDER BY field5 ASC limit $offset, 30;

field4和field5上都有索引。

所有字段都是varchar类型。 Field5 被测试为 int 但没有真正的改进通知。

现在 limit 0, 30 的查询大约需要 1 秒,但是 limit 119970, 30 的查询大约需要 20 秒。

在分页页面上获得小于 0.1 秒的结果是否现实?网站需要这样的加载时间才能提供良好的用户体验。

EXPLAIN(选择 limit 0,30)

id: 1
select_type: SIMPLE
table: table
type: index
possible_keys: NULL
key: field5
key_len: 768
ref: NULL
rows: 223636
Extra: Using where

最佳答案

关于php - 如何加快分页所需的MySQL查询-表中万条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5724527/

相关文章:

php - mysqli 对象没有方法执行

php - simplexml_load_string foreach 不显示任何内容

php - 警告:mysqli_query()至少需要2个参数,第3行的D:\XAMPP\htdocs\***\includes\users.php中给出1个参数。

MySQL 错误 (1093)

mysql - 如何将具有键值对的元表作为父行加入

php - AWS SignatureDoesNotMatch 错误但签名代码和 key 对似乎都有效

php - Break While 循环添加 "last"到 <div>

PHP PDO 和 IN 子句

php - SQL语句不返回任何内容或在某些字段中返回NULL

mysql - 从 MySQL 结果中过滤等效但不重复的行