有了域名怎么建网站:用了这么多年MySQL,这些好习惯你用过哪些

一:新建表和字段建议:


1.所稀有据表和字段要有明晰的注释,字段说明

说明:不论是创建者仍是其他开发或者后续维护者都能清楚知道数据表和字段界说的意义

2.表名、字段名使用小写字母或数字,禁止呈现数字最初

说明:MySQL在Windows下不区分巨细写,但在Linux下默许是区分巨细写,为了防止呈现没必要要的麻烦,统一使用小写

3.每一个列都设置为not null(假如列为BLOB/TEXT类型的,则这个列不能设置为NOT NULL),且界说默许值

说明:3.1:NOT IN、!= 等负向条件查询在有 NULL 值的状况下返回非空行的成果集

3.2:使用 concat 函数拼接时,首要要对各个字段进行非 NULL 判断,不然只需任何一个字段为空都会形成拼接的成果为 NULL

3.3:当用count函数进行统计时,NULL 列不管帐入统计

3.4:因为NULL的列使得索引,索引统计和值比较都更杂乱,可为NULL的列会使用更多的存储空间,在mysql里也需要特殊处理,当可为NULL的列被索引时,每一个索引记载需要一个额定的字节,假如方案在列上建索引,应该防止将列设计为NULL。

4.每一个表有自增列id且为主键,使用无符号类型unsigned,不作事务逻辑使用

说明:4.1:防止存储负值,且扩展了表明规模

4.2:假如使用非自增主键(假如身份证号或学号等),因为每次刺进主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中心某个方位,此时MySQL不能不为了将新记载插到适宜方位而移动数据,乃至方针页面可能现已被回写到磁盘上而从缓存中清掉,此时又要从磁盘上读回来,这添加了很多开支,同时频频的移动、分页操作形成了很多的碎片,得到了不行紧凑的索引结构,后续不能不通过OPTIMIZE TABLE来重建表并优化填充页面

5.表达是否概念的列,使用is_xxx的方式命名,数据类型使用unsigned tinyint(1表明是,0表明否)

例如:is_valid,1.表明有用 0.表明无效

6.禁止使用mysql保留字,例如desc,range,match,action,add,alter,all..等等

更多保留字可以参考mysql官方文档说明:https://dev.mysql.com/doc/refman/5.7/en/keywords.html

7.varchar是可变长字符串,不预先分配存储空间,长度不要超过5000,假如存储长度大于此值,界说字段类型为text,独立出来一张表,用主键来对应,防止影响其它字段索引功率

8.单表行数 超过500万行或者表单容量超过2GB,才引荐进行分库分表

9.命令规范:主键索引名以pk_字段名;仅有索引名uk_字段名;普通索引名idx_字段名;暂时表则以tmp为前缀

10.小数类型为decimal,禁止使用float和double

说明:float和double的存储的时分,存在精度损失的问题,极可能在值的比较时,得到不正确的成果。假如存储的数据规模超过decimal的规模,建议将数据拆成整数和小数分开存储

11.字段允许适当冗余,以提高查询性能,冗余字段应遵循:1)不是频频修正的字段。2)不是varchar超长字段,更不能是text字段。

12.InnoDB和MyISAM存储引擎表,索引类型选择BTREE;MEMORY表可以依据需要选择HASH或者BTREE类型索引。

13.在建立索引时,多考虑建立联合索引,并把区分度最高的字段放在最前面,这样可以更高效检索数据

14.适宜的字符存储长度,不光节约数据库表空间、节约索引存储,更重要的是提高检索速度

二:增删改查好习惯


1.SELECT语句指定详细字段名称,禁止写成*,select *会将不该读的数据也从MySQL里读出来,形成没必要要的带宽压力

2.分页查询,当limit出发点较高时,可先用过滤条件进行过滤。如select f1,f2,f3 from table1 limit 20000,20;优化为: select f1,f2,f3 from table1 where id>20000 limit 20

3.where条件里等号左右字段类型一致,不然无法使用索引

4.在多表join中,尽量选取成果集较小的表作为驱动表,来join其他表

5.刺进列列表与值列表个数相同,上面二者的个数需要相同,假如没有指定列列表,则值列表长度要与表列数相同。

6.更新删除影响行数不要太大,假如太大,进行细粒度拆分

7.更新,删除语句记得随手写好where条件(你想删库吗?哈哈)

欢迎我们补充,一同建立更优雅的数据规范。


来历:https://www.cnblogs.com/peyshine/p/12928825.html

【免责声明】本文仅代表作者或发布者个人观念,不代表(www.lmnkf.cn)及其所属公司官方发声,对文章观念有疑义请先联络作者或发布者自己修正,若内容触及侵权或违法信息,请先联络发布者或作者删除,若需我们协助请联络平台管理员,Emailcxb5918(本平台不支撑其他投诉反馈渠道,谢谢合作)。若需要学习以上相关常识请到巨推学院观看视频教程,网站地址www.tsllg.cn。

相关阅读