我需要在 Mysql 数据库中有可变列。我使用另一种方法,即有一个辅助meta_data
表。我将变量列存储在meta_data
. 的结构meta_data
是:
CREATE TABLE IF NOT EXISTS `data_meta` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`data_id` int(11) DEFAULT NULL,
`meta_key` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
`meta_value` text CHARACTER SET utf8,
PRIMARY KEY (`id`),
KEY `data_id` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=347 ;
我需要查询其中一些变量列。所以我的问题是Mysql中这样的语句的成本是多少:
select *
from data
join data_meta as data_prov on (data.id=data_prov.data_id)
join data_meta as data_city on (data.id=data_city.data_id)
join data_meta as data_price on (data.id=data_price.data_id)
.
.
.
.
如果在现实世界中,这可能会导致我的查询非常慢,有没有其他选择variable columns
?
注:两者都data
可以meta_data
快速增长