建表规约
表达是与否概念的字段,必须使用is_xxx命名,数据类型是unsigned tinyint(1-是,0-否)
任何字段如果是非负数,必须是unsigned
POJO类中的任何布尔型变量,都不要加...才推荐进行分库分表
如果预计三年后的数据量根本达不到这个级别,不要在创建表时就分库分表
合适的字符存储长度,不但节约数据库表空间,节约索引存储,更重要的是提升检索速度
索引规约
业务上具有唯一特性的字段...; 即使c的区分度更高,也必须要将d放在索引的最前列,即索引idx_d_c
要注意防止因为字段类型不同造成隐式转换,导致索引失效
创建索引有以下错误的观点:
认为一个查询就需要建一个索引
认为索引会消耗空间...,注意 count(distinct col1, col2) 如果其中一列全为NULL, 那么即使另一列有不同的值,也返回0
当某一列的值全是NULL时, count(NULL)的返回结果为0,但sum...ISNULL来判断是否为NULL值
NULL与任何值的直接比较都为NULL:
NULLNULL的返回结果是NULL,而不是false
NULL==NULL的返回结果是NULL,而不是true
NULL