美文网首页
数据库建表技巧

数据库建表技巧

作者: 织梦少年666 | 来源:发表于2022-09-06 19:48 被阅读0次

    1.名字

    1.1见名知意
    1.2大小写
    1.3分隔符 auto_test_info
    1.4表名 对于表名,在言简意赅,见名知意的基础之上,建议带上业务前缀。
    1.5索引名 在数据库中,索引有很多种,包括:主键、普通索引、唯一索引、联合索引等。

    2.字段类型

    2.1尽可能选择占用存储空间小的字段类型,在满足正常业务需求的情况下,从小到大,往上选。
    2.2如果字符串长度固定,或者差别不大,可以选择char类型。如果字符串长度差别较大,可以选择varchar类型。
    2.3是否字段,可以选择bit类型。
    2.4枚举字段,可以选择tinyint类型。
    2.5主键字段,可以选择bigint类型。
    2.6金额字段,可以选择decimal类型。
    2.7时间字段,可以选择timestamp或datetime类型。

    3.字段长度

    4.字段个数 建议每表的字段个数,不要超过20个。

    5.主键 在单个数据库中,主键可以通过AUTO_INCREMENT,设置成自动增长的。主键建议保存跟业务无关的值,减少业务耦合性,方便今后的扩展。

    6.存储引擎

    在mysql5.1以前的版本,默认的存储引擎是myslam,而mysql5.1以后的版本,默认的存储引擎变成了innodb。建议我们在使用mysql8以后的版本时,直接使用默认的innodb存储引擎即可,无需额外修改存储引擎。

    7.NOT NULL 在innodb中,需要额外的空间存储null值,需要占用更多的空间。null值可能会导致索引失效。因此,建议我们在定义字段时,能定义成NOT NULL,就定义成NOT NULL。

    8.外键 外键存在的主要作用是:保证数据的一致性和完整性。只有存储引擎是innodb时,才能使用外键。如果只有两张表的关联还好,但如果有十几张表都建了外键关联,每删除一次主表,都需要同步删除十几张子表,很显然性能会非常差。

    9.索引 建议单表的索引个数不要超过:5个。如果在建表时,发现索引个数超过5个了,可以删除部分普通索引,改成联合索引。在创建联合索引的时候,需要使用注意最左匹配原则,不然,建的联合索引效率可能不高。

    10.时间字段 优先推荐使用datetime类型保存日期和时间,可以保存的时间范围更大一些。

    11.金额字段 float和double可能会丢失精度,因此推荐大家使用decimal类型保存金额。

    12.唯一索引 创建唯一索引时,相关字段一定不能包含null值,否则唯一性会失效。

    13.字符集 建议在建表时字符集设置成:utf8mb4,会省去很多不必要麻烦。

    MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用utf8,然后将字符集修改为utf8mb4,也会不会对已有的utf8编码读取产生任何问题。当然,为了节省空间,一般情况下使用utf8也就够了。

    相关文章

      网友评论

          本文标题:数据库建表技巧

          本文链接:https://www.haomeiwen.com/subject/gqqwnrtx.html