我有一个 MYSQL 数据库,其中一个表每秒增长 5,000 行。我希望这张表能进入数十亿条记录。我现在在 php 中有一个查询功能:
$result =mysqli_query($con, "SELECT * FROM table WHERE `data`='".$input."' LIMIT 0 , 30");
问题很明显,表越大,查询最新记录的时间就越长。到目前为止,函数刚刚超时。如果我直接从 sql 运行相同的查询,它会做同样的事情。
是否有更好的方法来查询此表以加快查询时间。是否可以从最后一条记录、第一条记录开始查询并在两者之间递增查询以加快速度?
此外,如果有更快的替代方案,我也不会死心塌地地使用 php,请告诉我。
另外,将表拆分为多个表并在多个较小的表上同时运行查询会更好吗?
最佳答案
索引在这里非常重要。有很大的不同。还要确保它已正确标准化。
另一个更实际的想法是不要有一个大数据库。但是根据您稍后查询时知道的标准,将它分成许多更小的部分。比如,日期,首字母等。让这个大数据库一直增长是不切实际的。必须分开。
另一个部门可能是将较旧的数据存储在较慢的较大块中。在临时表中保存较新使用的数据。
关于MYSQL查询十亿条记录超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17644160/