先把数据结构搞清楚,程序的其余部分自现。—— David Jones
01
第一:理解数据库作用原理,使你能更好与开发互相沟通,更好输出方案。
第二:会用简单常用的SQL查询日常问题。实现基本的数据库应用价值。
02
03
库名,表名,字段名,索引名统一使用小写字母,数字,以下划线分割。
库名,表名,字段名不要超过30个字符长度。
库名,表名,字段名不能单独使用DB的关键字,像lock,time,date,return,user等。
数据库的名称为:业务名称_[业务模块]_db,eg:oms_db,oms_history_db。
非唯一索引按照“idx_字段名称[_字段名称]”,唯一索引按照“uk_字段名称[_字段名称]”进行命名。
业务系统使用数据库账号命名为:业务名称_[r|w]。
统计类数据表前缀:s 基础数据表前缀:b 基础类型维护数据表前缀:t 原始数据表前缀:in 订单数据表前缀:o 同步队列数据类型表前缀:iq 财务数据表前缀:f
单表索引个数不能超过30个
关联字段,业务外键,create_time 字段必须建索引
在选择性高的字段创建索引,注意组合索引的顺序,利用索引的最左原则
使用复合索引,而不是添加新的索引
避免冗余索引
04
第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
05
where在分组前过滤,having在分组后过滤 having 字段必须是查询出来的,where 字段必须是数据表存在的。 where 不可以使用字段的别名,having 可以。因为执行WHERE代码时,可能尚未确定列值。 where 不可以使用合计函数。一般需用聚合函数才会用 having
END
本文选自作者新书《TOB产品之美》,限时优惠
01
02
03
04
获取途径:
加入星球,然后留言提供邮箱