不建议使用SELECT * 类型查询
- Content:当表结构变更时,使用*通配符选择所有列将导致查询的含义和行为会发生更改,可能导致查询返回更多的数据。
- Case:
select * from tbl where id=1
INSERT未指定列名
- Content:当表结构发生变更,如果INSERT或REPLACE请求不明确指定列名,请求的结果将会与预想的不同; 建议使用“INSERT INTO tbl(col1,col2)VALUES …”代替。
- Case:
insert into tbl values(1,'name')
建议修改自增ID为无符号类型
- Content:建议修改自增ID为无符号类型
- Case:
create table test(`id` int(11) NOT NULL AUTO_INCREMENT)
请为列添加默认值
- Content:请为列添加默认值,如果是ALTER操作,请不要忘记将原字段的默认值写上。字段无默认值,当表较大时无法在线变更表结构。
- Case:
CREATE TABLE tbl (col int) ENGINE=InnoDB;
列未添加注释
- Content:建议对表中每个列添加注释,来明确每个列在表中的含义及作用。
- Case:
CREATE TABLE tbl (col int) ENGINE=InnoDB;