mysql 基于多个条件的索引/排序数据

标签 mysql database indexing

我有一个简单的表“t1”,其中包含:

word VARCHAR(16)
id INT
importance SMALLINT

word 和 id 一起是唯一的,但单独使用时都不是唯一的。

我添加了一个UNIQUE INDEX(word, id)

我的查询看起来像这样:

SELECT id FROM t1 WHERE word = "something" ORDER BY importance DESC

但是执行需要 0.0002 秒:

SELECT id FROM t1 WHERE word = "something"

但执行ORDER BY important DESC需要多达0.15秒。

我的问题是,如何对表格进行索引/重新排序,以便首先按单词进行组织,然后按重要性进行组织,而无需即时进行排序?

我可以重新排序静态数据,使其默认按单词、重要性 DESC 排序吗?

最佳答案

要加快查询速度,请在(单词、重要性 DESC、id) 上添加索引。

一张表上可以有多个索引,因此如果您不想删除现有索引,则无需删除。

关于mysql 基于多个条件的索引/排序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10956060/

相关文章:

mysql - 无法连接到 '127.0.0.1' 上的 MySQL 服务器

sql - mysql "group by"查询非常慢

mysql - 如果您有一个整数主键数组,从 MySQL 获取一堆行的最佳方法是什么?

php - Laravel 5.2 外键错误

python - 编写一个带数字并返回其对应月份缩写的基本程序

mysql - Joomla 2.5 : You do not have access to the administrator section of this site

MySQL从具有别名的两个表中选择所有列

mysql - 在 node.js 中从数据库中检索数据

sql-server - 让SQL Server使用索引查找+键查找代替聚集索引扫描,不使用WITH (FORCESEEK)

python - Algolia 索引的 ObjectID 列表