标签:
一、选择合适的数据类型
1.使用可存下数据的最小的数据类型
2.使用简单地数据类型,Int<varchar
3.尽可能使用not null定义字段
4.尽量少用text,非用不可最好分表
用Int存储日期时间
from_unixtime()可将Int类型的时间戳转换为时间格式
unix_timestamp()可将时间格式转换为Int类型
存储IP地址——bigInt
利用inet_aton(),inet_ntoa()转换
二、范式设计
一般需要遵循第三范式的要求
数据表结构优化 第三范式:要求数据库中不存在非关键字段对任意候选关键字的传递函数依赖
不符合第三范式要求的表存在以下问题:
1.数据冗余:(分类、分类描述)对于每一个商品都会进行记录
2.数据插入异常
3.数据更新异常
4.数据删除异常
反范式化
为了查询效率的考虑把原本符合第三范式的表适当增加冗余,以空间换取时间
三、表的拆分
垂直拆分
把原来有很多列的表拆分成多个表,原则是:
1.把不常用的字段单独存放到一个表中
2.把大字段独立存放在一个表中
3.把经常使用的字段放在一起
水平拆分
1.对customer_id进行hash运算,如果是要拆分成5个表的话,则使用mod(customer_id,5)
2.针对不同的hashID把数据存到不同的表中
标签:
原文地址:http://www.cnblogs.com/haodaquan/p/4986578.html