时间 ,金额 ,状态, 用户 ID 。
四个字段如果要创建一个组合索引,以提高搜索效率,该如何组合会更优化一些?
具体作用是要用于后台管理使用的。因为考虑到每个都可能频繁使用,所以也都不能确定谁先开头会比较合适。
希望有大佬给提供意见参考。感谢。
时间 ,金额 ,状态, 用户 ID 。
四个字段如果要创建一个组合索引,以提高搜索效率,该如何组合会更优化一些?
具体作用是要用于后台管理使用的。因为考虑到每个都可能频繁使用,所以也都不能确定谁先开头会比较合适。
希望有大佬给提供意见参考。感谢。
MySQL的索引主要指的是BTree索引,需要遵循最左前缀原则,常规的做法会根据select语句对索引进行定制,像这种后台管理的场景,sql基本是拼接的,可以说没有固定索引,这种情况,可以使用以下方案进行优化:
5 回答3.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.8k 阅读
3 回答2k 阅读
你这个需求根本不需要用到组合索引啊
用户ID单独索引,时间单独索引就行了
具体原因,是因为索引只在你查的数量低于总函数的20%才起作用
也就是说,状态这种低唯一性的字段不加索引
金额这个数字确实是高唯一性,但是他的update应该挺频繁,如果给他加了索引,意味着每次update都要重建索引,所以这个字段也不适合加索引