因此,我有一个MYSQL数据库,其中一个表每秒增长5,000行。我希望这张表能够进入数十亿条记录。我现在所拥有的PHP中的查询功能:MYSQL查询十亿条记录和超时问题
$result =mysqli_query($con, "SELECT * FROM table WHERE `data`='".$input."' LIMIT 0 , 30");
的问题是显而易见的越大表获取时间越长,查询最新的记录。到了这一点,功能刚刚超时。如果我直接从sql运行相同的查询,它会做同样的事情。
是否有更好的方式来查询此表以加快查询时间。是否可以从最后一条记录开始查询,首先记录并在两者之间递增以加快速度?
此外,我不死在使用PHP,如果有更快的选择请让我知道。
将表拆分成多个表并同时在多个小表上运行查询会更好吗?
谢谢您的高级。
你有索引吗?你的查询没有'ORDER BY'子句,所以MySQL会猜测如何对记录进行排序,并且很可能使_wrong_猜测。在索引列上添加一个ORDER BY,没有一个顺序不是确定性的。 –
我还会补充说'SELECT *'几乎从不属于生产代码。尽管它不应该减慢查询速度,但它可能会影响MySQL选择排序的列。始终明确您实际需要的列。 –
您可以尝试对'data'列建立索引,但这会通过更新每个INSERT的索引来降低更新速度。你也许可以通过使用INSERT DELAYED来减轻这个问题,或者缓冲你的输入,并用一个'INSERT'语句添加大块更新。 – 2013-07-14 21:58:50