我有一个非常大的数据库(约 1000 万行),我想在表中尽快列出这些内容。我有几个选择:
- 我可以限制来自 Mysql 的行 - 不推荐,因为我想计算具有特定类型数据(例如附件)的行
- 获取所有行并使用 while 循环来限制每次 1000 条记录 - 我认为这样做很好,但在内存中调用 1000 万行看起来很疯狂,我很确定它的性能一定更差.
- 计算总数据,然后使用限制列出 - 但是 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/