表名要简洁 关键单词即可 例如 admin_users admin代表后台 user代表用户 s代表多个
字段名称定义也需要简洁 例如id 没必要加前缀
user_id代表用户id 如果表比较少可以定义u_id u不会重复的情况下可以这么定义
数据类型设计上一定要考虑好长度需求
character=3bytes, 1汉字=1character
例如 name 添加限制是3个中文 那么长度限制就是3
mysql限制一个字段长度限制不可超过65535 超过则需要设置类型为text
float int 类型的数据存储的时候可以考虑非负数
高精度计算一般存储decimal类型
计算时候需要考虑精度问题 需要转换计算数据类型
索引建立的时候需要考虑表的数据量/查询条件/查询次数/修改或者写入次数
一般使用最多的是组合索引需要特别注意最左原则
全文索引一般不适用,可以考虑搜索引擎
组合索引效率是大于合并索引(多个索引一起使用)
btree索引与hash索引一定要考虑索引适应场景 hash是一次命中 btree是一层层查询(可以思考下区间查询与多维数据定位)
在写sql时也需要注意下索引命中率,多条件 那个容易先命中 多表查询那个表数据少 那个表使用索引了, (多表查询是先查询主表再根据主表数据匹配第二个表数据)
设置表的时候可以根据业务场景设计冗余字段(摆脱多表查询与数据命中率)
索引的建立是在牺牲写入/修改操作的性能
可以考虑建造数据缓存减少mysql重复查询相同数据