笔记:Mysql踩坑之路

MySQL
521
0
0
2022-06-15

多年msyql使用积累的一些最基本的坑,简单记录一下:

1.访问控制(User和主机);

2.禁止业务系统使用root,root应作为保留管理员账号;

3.字符集建议都设置为utf8mb4;

4.表字段不得超过30个,且单表数据最好不要超过400w,大数据进行合理分表(水平/垂直);

5.表必须有主键,且设置id为自增主键;

6.库表字段等要规范且有意义的命名,使用蛇形命名且禁止大写;

7.引擎类型一律为InnoDB,如无特殊需求。禁止使用InnoDB/MyISAM/Memory以外的存储引擎;

8.表字段禁止NULL,必须NOT NULL default 默认值,NULL值会存在占用额外存储空间、索引失效等其他问题;

9.字段最好不要出现blob、text,实在需要时请使用拓展表;

10.唯一索引以“uq_”开头,普通索引以“idx_”开头;

11.索引个数最好不要超过5个;

12.join必须使用索引,in查询不要超过1000,合理使用join与in(笛卡尔积与子查询不用索引);

13.禁止写select *,同理禁止insert into t1 values(…);

14.UNION ALL替代UNION;

15.DML语句where条件必须用索引,注意表锁问题;

16.合理使用索引,注意索引左原则、索引失效,null值等的影响;