为了账号安全,请及时绑定邮箱和手机立即绑定

mysql 索引创建

/ 猿问

mysql 索引创建

慕容森 2018-08-10 18:16:29

时间 ,金额 ,状态, 用户 ID 。
四个字段如果要创建一个组合索引,以提高搜索效率,该如何组合会更优化一些?
具体作用是要用于后台管理使用的。因为考虑到每个都可能频繁使用,所以也都不能确定谁先开头会比较合适。
希望有大佬给提供意见参考。感谢。

查看完整描述

2 回答

?
天天世纪

你这个需求根本不需要用到组合索引啊
用户ID单独索引,时间单独索引就行了
具体原因,是因为索引只在你查的数量低于总函数的20%才起作用
也就是说,状态这种低唯一性的字段不加索引
金额这个数字确实是高唯一性,但是他的update应该挺频繁,如果给他加了索引,意味着每次update都要重建索引,所以这个字段也不适合加索引

查看完整回答
反对 2018-08-12
?
绝地无双

MySQL的索引主要指的是BTree索引,需要遵循最左前缀原则,常规的做法会根据select语句对索引进行定制,像这种后台管理的场景,sql基本是拼接的,可以说没有固定索引,这种情况,可以使用以下方案进行优化:

  1. 暂时不建索引,把MySQL的慢查询打开,对系统中的慢查询进行统计分析,然后有针对性的进行索引优化

  2. 使用MySQL主从架构,在从库上进行查询,系统会慢,但保证不对主库造成影响

  3. 放弃MySQL,使用搜索引擎技术,及基于lucene的Solr或es


查看完整回答
反对 2018-08-12

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信