高性能Mysql数据库表设计原则

以下观点参考《高性能 Mysql》,欢迎指教。

1 更小通常更好

   选择表示数据的最小类型(正确存储你的内容):比如说,能够使用char 数据类型存储,就不必选择text,能够使用int型存储数据,就不应该使用long型。

   理由:更小的数据类型使用了更小的磁盘空间,内存和cpu缓存,而且需要的cpu周期也更少。

   PS:确保不会低估要存储的值。(能够很好的把握需求,对要存储的数据要比较精确的判断)

2 简单就好

   这个好理解,尽可能选择简单的数据类型存储数据,mysql的数据类型不外乎int,long,char,varchar,text等等。那么在选择的时候,尽量选择最简单的基本数据      类型存储数据。比如我平常存储时间的时候一般都是存成int类型(转化成timestamp).

   理由:越简单的数据类型,需要的cpu周期越少。

3 尽量避免null

   尽可能的把字段定义为 not null

   理由:Mysql 难以优化引用了可空列的查询,空列会使索引,索引统计和值更加复杂,可空列需要更多的存储空间。一般来说,设置默认值(DEFAULT)是个比较好    的习惯。当然该条对Mysql表性能的提升影响不是很大,不应放在最优先考虑的地位。

 

综上所述,我们在设计一个Mysql数据表的时候:

第一步:大致确定字段的数据类型,数字,字符串,时间等,比较直观

第二步:确定特定的类型,比如说 :数字里有tinyint,smallint,int,long等,选择最合适的一个(更小通常更好)

第三步:如有必要,请为字段设置默认值。

当然,索引优化肯定是必不可少的,不过这属于设计表完成之后的优化范围了。

转载于:https://www.cnblogs.com/luxixing/archive/2010/11/07/1871283.html

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值