我正在实施一个数据库来存储我的用户的详细信息。通常我会这样创建:
UserID metafield1 metafield2 metafield3
1 value11 value12 value13
2 value21 value22 value23
3 value31 value32 value33
但是看看Wordpress中的数据库,他们就这样做了:
UserID metafieldname metafieldvalue
1 metafield1 value11
1 metafield2 value12
1 metafield3 value13
2 metafield1 value21
2 metafield2 value22
2 metafield3 value23
3 metafield1 value31
3 metafield2 value32
3 metafield3 value33
从我看来,添加/编辑/删除新的元数据更容易。您不必更改表格的结构。
第二个架构中不会有空单元格。但是,对于大量行,元数据的名称将占用空间。
使用第二个架构查询速度更快吗?
我想知道第二种方法比第一种方法有什么优势?
感谢。
答案 0 :(得分:0)
查询速度取决于您要搜索的字段以及该字段是否已编入索引。还取决于表中有多少行以及列的数据类型。
如果您要查询UserId = somevalue的位置,则假设两种方案中的数据类型相同,则返回值时没有明显的速度差异。
如果对元数据进行索引和查询,则会看到速度上的细微差别。
我会推荐您列出的第二个用于优化目的。
答案 1 :(得分:-1)
第二种方法最重要的优点是,如果添加更多元数据,则不必更改表的结构。从长远来看,这是一个巨大的优势。第二种方法也将简化查询语句,插入和删除语句。