赞
踩
国庆快乐呀大家!
在项目开始前一个好的设计、一个健康的表关系,不仅会让开发变的有趣舒服,也会在后期的维护和升级迭代中让系统不断的成长。那么今天就认识和解读一下阿里的准则!!
如果使用这个准则,可以避免以下情况的问题:
综上所述,通过遵循该准则,可以避免由于命名混淆、类型不匹配、范围不确定、逻辑错误以及代码可维护性差引起的问题。
遵循这个准则,可以避免以下情况的问题:
遵循这个准则可以帮助避免在数据库表名和字段名命名时出现不规范、不可读、易混淆等问题,提高代码的可维护性和可读性。
如果遵循这个准则,可以避免以下情况的问题:
遵循这个准则可以帮助避免在表名和DO类名中使用复数名词,提高代码的可读性和数据的一致性,使代码更加规范和易于维护。
【强制】禁用保留字,如 desc、range、match、delayed 等,请参考 MySQL 官方保留字。
遵循这个准则,你可以避免以下情况的问题:
如果遵循这个准则,可以避免以下情况的问题:
遵循这个准则可以帮助你避免在索引命名时出现混淆、误用等问题,并提高代码的可读性、可维护性和可扩展性。
float
和double
类型在存储时存在精度损失的问题。特别是在进行浮点数比较时,可能会得到不准确的结果。使用decimal
类型可以避免这种精度损失,因为它采用了十进制表示法,能够更准确地存储和比较小数。decimal
的范围,按照这个准则的建议,可以将数据拆分成整数和小数部分,然后分别存储。这样可以避免数据存储问题,确保数据的完整性和准确性。decimal
类型可以使代码更具可维护性和可读性。因为其他开发人员可以更容易地理解你的代码,并清楚地知道你正在使用的数据类型。可以避免以下情况的问题:
char
定长字符串类型可以避免内存浪费。因为char
类型是定长的,它不会像变长字符串类型那样在内存中分配额外的空间。char
定长字符串类型可以提高性能。由于char
类型是定长的,所以在执行字符串拼接或频繁修改字符串等操作时,它不会像变长字符串类型那样需要重新分配和复制内存,因此性能更高。char
定长字符串类型不会像变长字符串类型那样产生内存重新分配和复制,因此可以减少垃圾回收的压力,降低系统的开销。char[]
可能比String
更安全,因为它不会因为创建新的字符串实例而引发可能的溢出问题。这段阿里巴巴的Java MySQL开发准则强调了如何有效地使用数据库中的字符串字段。下面是我对这段准则的理解,以及使用这个准则可以避免的情况:
VARCHAR
而不是固定长度的字符串类型 (CHAR
) 可以避免预先分配存储空间的问题。VARCHAR
是可变长度的字符串,只会存储实际的数据,不会像 CHAR
那样预先分配空间。这可以节省存储空间,特别是在处理长度不定的字符串时。VARCHAR
的最大长度设置为5000。这是因为在大多数情况下,如果字符串的长度超过这个值,那么将其定义为 TEXT
类型可能更为合适。TEXT
类型适用于存储大量的文本数据,可以很好地处理大量文字内容。这条准则的建议是,每一个数据库表都应该有以下三个字段:
id
:这是一个唯一标识符,通常被用作主键。在这个字段中,你应该存储的是每个记录的唯一标识。在阿里巴巴的准则中,推荐使用bigint unsigned
类型,这意味着这个数字可以被视为非常大的无符号整数。在单表情况下,这个字段通常被设置为自增,即每当你添加一条新的记录时,这个字段的值会自动增加。gmt_create
:这是一个日期时间字段,用于记录每条记录的创建时间。它的类型是datetime
,可以精确到秒。在这个字段中,你可以存储创建记录时的日期和时间。gmt_modified
:这是另一个日期时间字段,用于记录每条记录最后一次被修改的时间。它的类型也是datetime
。在这个字段中,你可以存储对记录进行最后一次修改时的日期和时间。如果你遵循这个准则,你可以避免以下情况的问题:
gmt_create
和 gmt_modified
这两个时间戳字段可以帮助你跟踪记录的创建和修改历史,可以避免在处理数据时出现时间上的混乱。总的来说,这个准则有助于在设计数据库表结构时更加规范和统一,以便于进行更高效的数据管理和查询操作,避免了可能的数据问题。
这段阿里巴巴的Java MySQL开发准则建议你在命名表时,采用“业务名称_表的作用”的形式,以增加可读性和可理解性。这种命名方式可以帮助开发者更好地理解表在业务逻辑中的位置和作用,有利于维护和扩展代码。
以正例中的例子来说明:
alipay_task
:这个表可能涉及到支付宝的相关任务信息,通过这样的命名,我们可以直观地知道这个表的内容与支付宝相关,并且是用来存储任务信息的。force_project
:这个表可能涉及到强制项目相关的信息,如此命名可以帮助我们理解这个表主要存储的是关于强制项目的数据。trade_config
:这个表可能存储的是交易配置的相关信息,通过这个命名,我们可以清楚地知道这个表的主要作用是存储交易配置。如果你遵循这个准则,你可以避免以下情况的问题:
总的来说,这个准则可以提高代码的可读性和可维护性,避免因表命名不当引发的一系列问题。
这段阿里巴巴的Java MySQL开发准则是在推荐一种适当的冗余策略来提高查询性能,但同时也强调了数据一致性的重要性。这里的冗余字段应该遵循以下两个原则:
举个正例,比如商品类目名称这个字段,如果使用频率高,字段长度短(即,类目名称基本一成不变),那么可以在相关联的表中冗余存储这个类目名称,以避免每次需要用到它时都要进行一次关联查询。
如果你遵循了这条准则,你可以避免以下情况的问题:
这段阿里巴巴的Java MySQL开发准则是在推荐一种数据库设计的策略,即当单表行数超过500万行或者单表容量超过2GB时,推荐进行分库分表。
首先,我们需要理解什么是分库分表。分库分表是一种数据库设计策略,它用于解决单个数据库无法处理大量数据的问题。通过将一个大的表拆分成多个小的表,并分布在不同的数据库(分库)或者不同的表(分表)中,可以提高查询性能和数据管理。
那么,这段准则在说什么呢?这段准则的意思是,如果一个表的容量或者行数还没有达到这个级别,那么就没有必要过早地进行分库分表。过早地进行分库分表可能会带来一些额外的复杂性,例如,需要处理跨表查询,数据一致性问题,以及可能的分布式事务等问题。而这些问题的处理往往会带来额外的开发难度和性能损耗。
所以,如果预计三年后的数据量根本达不到这个级别,那么在创建表时就不应该过早地考虑分库分表。
通过遵循这个准则,你可以避免以下情况:
总的来说,这个准则可以帮助你在数据库设计时避免过早地引入复杂性,浪费资源,以及性能下降等问题。
这段阿里巴巴的Java MySQL开发准则主要强调了合适字符存储长度的选择对于数据库性能的重要影响。
对于字符存储长度来说,不同的数据类型有不同的存储长度。例如,tinyint
是1字节,smallint
是2字节,int
是4字节,bigint
是8字节。这些长度不仅决定了存储空间的大小,也影响了索引的存储以及查询的速度。
当我们在设计数据库表的时候,要尽可能地选择合适的字符存储长度。如果选择的长度过大,可能会造成存储空间的浪费,而如果选择的长度过小,可能会存储不了足够的数据,或者造成数据溢出。
选择正确的字符存储长度,可以帮助我们避免以下情况:
此外,这段准则还给出了一些具体的例子,说明了如何选择合适的字符存储长度。例如,对于人的年龄,选择tinyint unsigned
就足够了,因为人的年龄一般不会超过255岁;而对于龟的年龄,选择smallint unsigned
更合适,因为龟的寿命一般在数百岁以内,其值的范围在0到65535之间;对于恐龙化石和太阳的年龄,则分别选择了int unsigned
和bigint unsigned
,因为它们的年龄范围更大。
通过遵循这个准则,你可以在设计数据库表时选择合适的字符存储长度,从而避免上述问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。