从大桌子找到比赛的最佳方式

时间:2013-11-13 19:22:44

标签: php mysql sql database memory-limit

在数据库中找到几列之间匹配的最佳方法

我想做这样的事情:

如果找到与$ a匹配的内容,则显示行的ID

我在两种方式之间进行辩论:

  1. 选择整个表并查找匹配并将它们保存为数据库,然后从数组中显示它们

  2. 或者每次从表中搜索匹配

  3. 问题是每次我对所有表(非常大的表)执行查询时都存在内存限制问题

    所以我正在寻找一种占用内存最少的方法

2 个答案:

答案 0 :(得分:0)

如果所有数据都在一个表中,请确保将要查询的数据编入索引。这将确保您的桌子的“最佳”搜索。

就内存而言,如果您有一个非常大的结果集并将整个数据集抨击到一个数组中,则可能会耗尽内存。要处理此问题,您应该将数据分页,例如将一些有限数量的结果加载到数组中进行显示,然后在用户要求时显示更多数据。

答案 1 :(得分:0)

通常,从数据库中选择有限的结果比填充大型数组更快,占用内存更少。对于大型表,请确保只选择所需的数据。您可能正在寻找类似

的内容
SELECT record_id FROM your_table WHERE your_table.your_column = '$a' LIMIT 1;

这只会在结果集中返回一条记录。

相关问题