MYSQL查询十亿条记录超时问题

标签 mysql sql performance

我有一个 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/

相关文章:

sql - SQL中两列的平均值

python - 在 Django ORM 中避免 MySQL 死锁

mysql - 是双右插入符语法 >> mysqldump 的有效 MySQL

php - 如何在php中使用prepare语句关闭连接?

java - 在 Hazelcast 中面对客户端-服务器的性能问题

database - 由于类型转换未使用索引?

java - 数千个文件中的模式匹配

PHPMYADMIN 上的 MYSQL - 创建表关系

MySQL 连接查询构造

sql - hive和presto,整数除法截断问题