我有一张桌子entrytable
,里面有datum
, username
, status
, status_spam_user
,status_spam_system
和text
.
我想从具有username
, status
, status_spam_user
,的特定值的行中选择列文本的内容status_spam_system
。由于这可能会导致一长串条目(> 30'000),我想限制匹配行的数量。在此之前,匹配的行应按 column 排序datum
。
SELECT text
FROM entrytable
WHERE user = 'username' &&
`status` = '1' && (
`status_spam_user` = 'no_spam'
|| (
`status_spam_user` = 'neutral' &&
`status_spam_system` = 'neutral'
)
)
ORDER BY datum DESC
LIMIT 6430 , 10
我在表中添加了两个索引:
- index_datum(基准)
- index_status_mit_spam(用户,状态,status_spam_user,status_spam_system)
对于此查询,index_status_mit_spam
使用索引。由于索引不包含列datum
的信息,因此必须单独进行排序(即文件排序)。是否可以以某种方式设计我的查询/索引,它对WHERE
以及有用ORDER BY
?