
查询未使用索引造成的错误
在运行 mysql 查询时,收到了以下错误消息:
致命错误:未捕获的异常 'mysqli_sql_exception' 带有消息 'no index used in query/prepared statement'
登录后复制
这是因为查询未使用索引,导致查询速度慢。
为了解决此问题,可以执行以下步骤:
- 创建索引: 在查询中涉及的列上创建索引。这将提高查询速度。
- 触发 mysql 错误报告: 使用 mysqli_report() 函数触发 mysql 错误报告,以便在查询中未使用索引时显示警告。
以下是如何修改代码:
<?php
$mysql = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('There was a problem connecting to the database');
mysqli_report(MYSQLI_REPORT_OFF); // 触发 MySQL 错误报告
if (mysqli_connect_errno()) {
printf("DB error: %s", mysqli_connect_error());
exit();
}
$get_emp_list = $mysql->prepare("SELECT id, name FROM calc");
if (!$get_emp_list) {
echo "prepare failed
";
echo "error: ", $mysql->error, "
";
return;
}
$get_emp_list->execute();
$get_emp_list->bind_result($id, $emp_list);
登录后复制
以上就是MySQL 查询未使用索引:如何解决“致命错误:未捕获的异常 ‘i_sql_exception’ 带有消息 ‘No index used in query/prepared statement’”的详细内容,更多请关注米云其它相关文章!
