php - 具有 500,000 条记录的慢速 MYSQL 查询

标签 php mysql database performance

我有一个包含大约 500,000 条记录的 mySQL 表。该表的大小约为 45MB。第一次执行查询,每次需要将近20秒,但后续查询很快。如果我注销并重新登录,查询仍然很快。如果我 4-5 小时后回来。同样的查询又变慢了。

查询非常简单。

$query = "select * from tableName where uniqueID='$passedID' ORDER BY tableName ASC";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

该站点托管在具有 1 GB 内存的 VPS 上。网站每天接待大约 150 名访问者,每人访问 10 个页面左右。 500,000 条记录似乎并不太大,因此性能应该没问题。有谁知道可能导致速度缓慢的原因吗?

最佳答案

初始响应缓慢可能有多种原因,具体取决于您的表结构和 VPS 的性能(或缺乏性能)。确保问题不是 MySQL 确保 ID 列已正确索引,因此它不会进行全表扫描。还要对查询运行解释以确保它正在使用索引。您的问题可能是缺少索引,迫使 MySQL 进行全表扫描而不是索引查找。

重复查询几乎肯定很快,因为查询缓存正在正确地完成它的工作。

VPS 也可能存在某种磁盘访问时间问题。如果您在 PHP 之外看到第一次访问文件夹很慢而第二次访问正常的情况,则怀疑 VPS 中存在问题。

关于php - 具有 500,000 条记录的慢速 MYSQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663630/

相关文章:

php - 如何限制SQL Server中的查询执行时间?

php - 使用 mysqli_connect 连接到 Google App Engine 中的 Cloud SQL

php - 如何将用户输入的特定元素与数据库进行匹配? -php/mysql/ajax

php - 如何向每个页面添加一个 MySQL 命令

php - cakePHP 查找 ("list") 返回空数组

MySQL:如果某些记录包含特定单词,如何对结果进行排序

php - 防止Form多次向数据库插入数据

mysql - 使用 MySQL 了解主键和关系数据库 (phpmyadmin)

sql - 省略日期中的毫秒数

php - 如何使用 my sql 查询删除 woocommerce 中已完成的订单