1 .根据业务场景编制相应的组合索引。 通常,过滤主键、外键和常用查询中的字段,并根据字段之间组合的紧密度创建一定顺序的索引。
例如,为t_org_exam_join_member_day创建索引。
首先,考虑字段之间的组合查询。 因此,首先创建组合索引。
假设A=f_organization_id,B=f_day,C=f_member_id
具有组合效果的是a、a和b、a和b和c。 这意味着sql语句执行查询的次数和执行扫描的次数相同。 像那样组合索引会起到绝对的效果。
如果是a和cqdzc的话,索引会发挥效果,但是得不到绝对的效果。 索引扫描的行数只是在a条件下查询的数。
key表示运行此sql并发挥效果的索引。 rows表示索引扫描的行数。
如果条件查询可能针对表中的几列进行,并且可能导致联接索引无效,则可以为每列创建索引。 例如只调查b、或c等。
索引策略组合:
一个表中有三个字段: XX、YY和ZZ。 在这三个字段中创建“组合索引”(Composite Index )时,组合索引中的字段顺序应该遵循什么原则?
一般原则:离散的字段越靠前。 哪个列可以降低索引的扫描成本?
例如,后3个场离散状况
XX:2
YY:1000
ZZ:50000
创建索引的顺序必须为ZZ、YY和XX
createindext_idxont(ZZ,yy,xx );
在where条件子句中,条件过滤器的顺序不需要与组合索引字段的顺序匹配,而是会产生索引效果。
对应于组合索引的key_len越大,表示该组合索引已被充分使用。