php - 从 mysql 数据库中选择多列的最快方法是什么?

标签 php mysql

我需要从数据库中选择 25 列,条件是 WHERE 和 ORDER BY。

我试图为此创建一个索引,但它仅限于 16 列。我如何组织 mysql 语句和数据库以最快的方式从 PHP 中的数据库中选择这 25 列?

示例表:

列:A、B、C、D、E、F、....

查询:“SELECT A, B, C, D, E, F, ... FROM table WHERE X = 5 ORDER BY Z”

更新 1:

这是一个大表(很多行),这就是为什么我需要一个索引来加速这个过程。

最佳答案

索引对您选择的列数(不包括 FULLTEXT)没有性能影响。它们仅在您使用选择 (WHERE) 以及有时使用排序 (ORDER BY) 和聚合(GROUP BY 等)时用于加快速度。

在这种情况下,您需要在 X 和 Z 上定义索引以获得最佳效率。因为 MySQL 每次查询只能使用 1 个索引,所以您需要在 (X,Z) 上建立索引(因为首先在 X 上选择,然后在 Z 上排序)。 请注意,这兼作 X 的索引

此外,包含所有 列的索引几乎与表条目(尽管已排序)相同,因此您不会从中获得太多 SELECT 性能改进,而 INSERT/UPDATE/DELETE 性能会暴跌。

关于php - 从 mysql 数据库中选择多列的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10431096/

相关文章:

PHP 私有(private) session

mysql - 如何在运行时在mysql查询中配置表

php - 如何检查文件夹是否已存在于谷歌驱动器中?

php - 正则表达式 - 修剪字符串末尾的字符

php - Zend Framework 选择选择 Zend_Db_Table

sql - varchar(255) v tinyblob v tinytext

两行中的 PHP MySql 交换值

php - 谁能帮我弄清楚为什么这些 SQL 查询花费这么长时间?

php - 文件上传总是失败

php - Laravel 是开始和结束之间的时间(防止重复预订)