企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 索引设计 1. 非唯一索引按照“i_字段名称_字段名称[_字段名]”进行命名。 2. 唯一索引按照“u_字段名称_字段名称[_字段名]”进行命名。 3. 索引名称使用小写。 4. 索引中的字段数不超过5个。 5. 唯一键由3个以下字段组成,并且字段都是整形时,使用唯一键作为主键。 6. 没有唯一键或者唯一键不符合5中的条件时,使用自增(或者通过发号器获取)id作为主键。 7. 唯一键不和主键重复。 8. 索引字段的顺序需要考虑字段值去重之后的个数,个数多的放在前面。 9. ORDER BY,GROUP BY,DISTINCT的字段需要添加在索引的后面。 10. 单张表的索引数量控制在5个以内,若单张表多个字段在查询需求上都要单独用到索引,需要经过DBA评估。查询性能问题无法解决的,应从产品设计上进行重构。 11. 使用EXPLAIN判断SQL语句是否合理使用索引,尽量避免extra列出现:Using File Sort,Using Temporary。 12. UPDATE、DELETE语句需要根据WHERE条件添加索引。 13. 对长度大于50的VARCHAR字段建立索引时,按需求恰当的使用前缀索引,或使用其他方法。 14. 下面的表增加一列url_crc32,然后对url_crc32建立索引,减少索引字段的长度,提高效率。 ``` CREATE TABLE all_url(ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, url VARCHAR(255) NOT NULL DEFAULT 0, url_crc32 INT UNSIGNED NOT NULL DEFAULT 0, index idx_url(url_crc32)); ``` 15. 合理创建联合索引(避免冗余),(a,b,c) 相当于 (a) 、(a,b) 、(a,b,c)。 16. 合理利用覆盖索引。