【发布时间】:2010-01-31 07:41:38
【问题描述】:
我需要将无限属性附加到表中的记录,并且我已经使用下面的#3 使用 mysql 设计了一个系统。不幸的是,我发现搜索一百万条记录变得越来越慢。 #2 是更好的方法,还是有更好的方法?这是使用视图的情况吗?我想让我的键表分开,这样我就知道为每条记录存储了哪些属性。
1:简单:
table records: id, recordname, valname
select recordname from records where valname = 'myvalue'
2:稍微复杂一点:
table records: id recordname
table keyvalues: id recordid keyname valname
select r.recordname
from records r
right join keyvalues kv on kv.recordid = r.id
and kv.keyname='mykey'
and kv.valname = 'myvalue'
3:最复杂:
table records: id recordname
table keys: id keyname
table values: id recordid keyid valname
select r.recordname
from records r
right join keys k on k.keyname='mykey'
right join values v on v.recordid = r.id
and v.keyid = k.id
and v.valname = 'myvalue'
【问题讨论】:
-
你是说 3 中的查询变慢了吗?
-
是的,好像 3 变慢了。