[原创]MySQL数据表schena避免设计缺陷_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 24292 | 回复: 0   主题: [原创]MySQL数据表schena避免设计缺陷        下一篇 
    本主题由 tngou 于 2014-5-28 12:42:03 置为精华
tngou
注册用户
等级:中校
经验:2433
发帖:192
精华:15
注册:2014-4-28
状态:离线
发送短消息息给tngou 加好友    发送短消息息给tngou 发消息
发表于: IP:您无权察看 2014-5-28 12:37:32 | [全部帖] [楼主帖] 楼主   主页

我们在创建数据库时,基本都有一些普遍的好与坏的设计原则,但有些只有在MySQL中才会体现。

这里会讨论一下MySQL的schema的问题,帮助我们避免这样错误。

1、太多的列

有些人使用非常宽的表(数千字段),然而只使用一小部分列,这时的转换代价就很高。由于MySQL

的存储引擎API工作时需要在服务器层和数据层之间拷贝数据,然后在服务器层将缓存的内���解码成

各个列。

我们应该经历的减少不必要的字段,比如一些预留字段。如果需要新的字段,我们可以新增就可以,不

必刻意的去预留。


2、太多的关联

实体-属性-值(EAV)设计模式是一个糟糕的模式,尤其实��MySQL下不能靠谱的工作。MySQL限制每个

关联操作最多只有61张表,但实际上在少于61张表下操作查询代价也是MySQL的问题。一些粗略的测试

得到,单查询最好在12张表以内做关联。

3、全能的枚举

枚举类型可以解决一些性能和错误的操作,但如果过度的是呀枚举会让schema的设计非��乱。

所以我们应该经理的避免大量的使用枚举,对一些关键字段使用枚举就可以。

4、避免全部NULL

MySQL中我们应该尽量的避免NULL(空)的存储,就算存储实际上存储一个“空值”,我们也尽量的避免存储NULL,

可以用其他的代替如 “0”,或者其他的特殊符号。

但我们也不必走向极端,对于一些未知值时也不要害怕的使用NULL。

该贴由hui.chen转至本版2014-11-5 16:11:50




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论