我有桌子房子
CREATE TABLE `house`
`idhouse` int(11) NOT NULL AUTO_INCREMENT,
`type` mediumint(2) DEFAULT NULL,
`address` varchar(5) DEFAULT NULL,
`county` varchar(5) ...
现在,我有广告功能。所以想把房子变成广告
方法1(直接添加要添加的列)
CREATE TABLE `house`
`idhouse` int(11) NOT NULL AUTO_INCREMENT,
`type` mediumint(2) DEFAULT NULL,
`address` varchar(5) DEFAULT NULL,
`county` varchar(5) ...
`ad_type` mediumint(2) DEFAULT NULL,
`ad_urgency` int(11) DEFAULT NULL,
`ad_status` int(11) DEFAULT NULL,
方法2(规范化,将其拆分为表广告)
CREATE TABLE `house`
`idhouse` int(11) NOT NULL AUTO_INCREMENT,
`type` mediumint(2) DEFAULT NULL,
`address` varchar(5) DEFAULT NULL,
`county` varchar(5) ...
CREATE TABLE `Ads`
`idAds` int(11) NOT NULL AUTO_INCREMENT,
`idhouse` int(11) NOT NULL AUTO_INCREMENT,
`ad_type` mediumint(2) DEFAULT NULL,
`ad_urgency` int(11) DEFAULT NULL,
`ad_status` int(11) DEFAULT NULL,
我应该使用哪种方法?
使用方法1(没有连接的SELECT)比方法2(带连接的SELECT)更快?
如果更快,由多少?很多 ?
答案 0 :(得分:1)
标准化有很多优点。
......还有一些。
单独的数据结构不能轻易地确定查询的速度,它受到许多不同方面的影响,如数据库配置,服务器硬件,索引,数据加载等等。
但是,由于较少的数据通常意味着更快的查询(有或没有连接):转到normalzied方法。系统结束的数据库管理员会感谢你。