我有下表:
问题(id,title,user_id,ask_id(可空),created_at)
我有以下三个问题:
- 从user_id =的问题中选择*?按created_at desc排序;
- 从user_id =的问题中选择*?和created_id不是由created_at desc的null顺序;
- 从ask_id =的问题中选择*?按created_at desc;
排序 醇>
优化这些查询的最佳方法是什么? 是否可以使用一个有助于避免使用文件排序的索引?
答案 0 :(得分:1)
没有。为user_id和ask_id
创建两个不同的索引答案 1 :(得分:0)
INDEX(user_id, created_at) -- for #1
INDEX(ask_id, created_at) -- for #3
第一个将帮助稍微为#2。
“Filesort”并不像每个人所说的那样邪恶。这只是一个线索,你要么没有最好的索引,要么查询足够复杂要求一种或多种。
如果这是一个大表而你没有真正使用id
,我可以建议其他优化。