admin 管理员组文章数量: 1184232
2024年4月14日发(作者:matlab2021a中文包)
Mysql建表与索引使用规范整理
一,设计表规范:
1. MySQL建表,字段需设置为非空,需设置字段默认值。
2. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL。
3. MySQL建表,如果字段等价于外键,应在该字段加索引。
4. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,
是否默认值,需保持一致,否则无法正确使用索引进行关联对比。
5. MySQL使用时,一条SQL语句只能使用一个表的一个索引。所有的字段类型都可
以索引,多列索引的属性最多15个。
6. 如果可以在多个索引中进行选择,MySQL通常使用找到最少行的索引,索引唯一
值最高的索引。
7. 建立索引index(part1,part2,part3),相当于建立了
index(part1),index(part1,part2)和index(part1,part2,part3)三个索引。
8. MySQL针对like语法必须如下格式才使用索引:
SELECT * FROM t1 WHERE key_col LIKE ‘ab%’ ;
9. SELECT COUNT(*) 语法在没有where条件的语句中执行效率没有SELECT
COUNT(col_name)快,但是在有where条件的语句中执行效率要快。
10. 在where条件中多个and的条件中,必须都是一个多列索引的key_part属性而
且必须包含key_part1。各自单一索引的话,只使用遍历最少行的那个索引。
11. 在where条件中多个or的条件中,每一个条件,都必须是一个有效索引。
12. ORDER BY 后面的条件必须是同一索引的属性,排序顺序必须一致(比如都是升
序或都是降序)。
13. 所有GROUP BY列引用同一索引的属性,并且索引必须是按顺序保存其关键字的。
14.、 JOIN 索引,所有匹配ON和where的字段应建立合适的索引。
15. 对智能的扫描全表使用FORCE INDEX告知MySQL,使用索引效率更高。
16. 定期ANALYZE TABLE tbl_name为扫描的表更新关键字分布 。
17. 定期使用慢日志检查语句,执行explain,分析可能改进的索引。
18. 条件允许的话,设置较大的key_buffer_size和query_cache_size的值(全局参
数),和sort_buffer_size的值(session变量,建议不要超过4M)。
二,命名规范 :
版权声明:本文标题:MySQL建表的规范总结 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1713098890a619788.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论