php - WordPress 中的 MySQL 计数与选择性能

标签 php mysql wordpress

我有一个非常大的数据库(约 1000 万行),我想在表中尽快列出这些内容。我有几个选择:

  1. 我可以限制来自 Mysql 的行 - 不推荐,因为我想计算具有特定类型数据(例如附件)的行
  2. 获取所有行并使用 while 循环来限制每次 1000 条记录 - 我认为这样做很好,但在内存中调用 1000 万行看起来很疯狂,我很确定它的性能一定更差.
  3. 计算总数据,然后使用限制列出 - 但是 mysql count 是一个交易破坏者,尽管有唯一和索引的 id,但我在 mysql count 方面遇到了糟糕的时间。

最好的方法是什么?

如果我只想列出 1000 万行并使用 php 解析数据来停止它并每次显示 1000 行,这是一个坏主意?

最佳答案

有一些事情需要考虑:

  • 数据库是否优化?如果是,则跳过
  • 为您想要过滤搜索的列建立索引
  • 仅从中选择您需要的列(而不是选择 *)
  • 如果您想计算总数并且 ID 是连续的,您可以选择最新的行并根据 ID 进行计数(如果它“那么慢”)
  • 如果您正在查看某种分页,您可以计算行数并根据用户输入仅选择几条记录(选择限制为 1000,在第 2 页时跳过“1000”等)

当您只使用 0.1% 的数据时,您不会希望“内存”中有 1000 万个数据,对吗?

关于php - WordPress 中的 MySQL 计数与选择性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52944298/

相关文章:

javascript - 如何将此 php 数组转换为 JavaScript 对象数组?

PHP GET ($_GET) 总是打印变量的名称而不是值

php - 在文本文件中打印 mysql_query

php - 进行 MySQL 查询时,字符集如何影响 php?

php - 从多表查询中获取 pdo 表信息

MySQL 全文后缀搜索( bool 模式)-(*apple)

php - AJAX 请求返回 JSON,不工作

php - 插入新记录后更新列

通过 SSL 提供服务时,Wordpress CSS 在 Chrome 中中断

php - 图片缺失且必需 - Wordpress AMP 结构未添加图片属性