-
222222222222
查看全部 -
111111111111
查看全部 -
水平拆分:对于表数据特别多的,可以进行水平拆分(表结构一致);
查看全部 -
垂直拆分:为了控制表的宽度,提供IO读取效率;
1、经常一起查询的列放一起;
2、text,blob等大字段拆分出到附表中;
查看全部 -
数据库中合适的操作:
1、批量操作(优先)VS逐条操作;
2、禁止使用Select*这样的查询,使用具体列查询(造成IO浪费,程序出错);
3、控制使用用户自定义函数(使用方便但是低效);
4、不要使用数据库中的全文索引(如果需要可以使用搜索引擎完成);
查看全部 -
表结构维护:
注意事项:
1、使用在线变更(MySQL5.6之后支持)表结构的工具;
2、同时对数据字典进行维护;
3、控制表的宽度和大小(随着业务的增加表会变的非常宽,可对表进行垂直拆分)
查看全部 -
索引维护:
索引选择:
1、出现在WHERE从句,GROUP BY从句,ORDER BY 从句的列;
2、可选择性高的列要放大哦索引的前面;
3、索引不要包含太长的数据类型(对于长的可以截取前面的检索,或者转换成MD5后索引);
注意事项:
1、索引不是越多越好,过多会降到读写效率;
2、定期维护索引碎片;
3、SQL语句中不要使用强制索引关键字(随着字段的增加索引可能会变或删除)
查看全部 -
数据字段维护:
1、使用第三方工具维护(与数据库管理系统有关)
2、利用数据库本身的备注字段来维护(增加COMMENT字段备注);
查看全部 -
反范式化:为了性能和读取效率考虑违反第三范式,允许存在少了数据冗余,以达到用空间换时间的目的。
优点:
1、减少表的关联数量;
2、增加数据的读取效率;
3、反范式化一定要适度。
查看全部 -
关于预留字段(预见性的避免修改数据库表机构,严禁使用):
1、无法准确知道预留字段的类型;
2、无法准确知道预留字段存储的内容;
3、增加维护成本;
4、严禁使用预留字段。
查看全部 -
避免使用触发器(before,after)
1、降低数据导入的效率;
2、可能出现意想不到的数据异常;
3、使业务逻辑变复杂;
查看全部 -
外键:(保持数据完整性)避免使用外键约束
1、降低数据导入效率;
2、增加维护成本;
3、相关联的列上一定要建立索引;
查看全部 -
主键选择:
1、业务主键(标识业务数据进行表关联)和数据库主键(优化数据存储(隐含主键))
2、主键最好顺序增长(比如:ID)
3、主键的字段类型所占空间要尽可能小。
查看全部 -
时间类型:
1、使用int:
优点:字段长度比datetime小;
缺点:使用不方便,需函数转换;
(1)生日不常用的int;
(2)下单时间、支付时间经常用的用datatime;
限制:int4个字节,智能存储到2038-1-19- 11:14:07
2、需要存储的颗粒度
年(year类型一个字节)、月、日、时、分、秒、周
查看全部
举报