哪个更快的mysql字符串搜索或整数与join语句的组合?

时间:2015-12-05 11:31:39

标签: mysql sql

一个表的列为category_NAME / ID,我们可以在其中传递id并为该类别的列表创建另一个表,或者直接添加类别名称。

哪一个更适合

案例1:

TABLE1

ID | CATEGORY_NAME

案例2

这里要获取列表,我们制作了一个JOIN语句

TABLE1

ID | CATEGORY_ID

CATEGORY_TABLE

ID | CATEGORY NAME

2 个答案:

答案 0 :(得分:1)

有什么区别 案例1: TABLE1

ID | CATEGORY_NAME

案例2

这里获取列表我们已经制作了一个JOIN语句

<强> TABLE1

ID | CATEGORY_ID

<强> CATEGORY_TABLE

ID | CATEGORY NAME

我想你的第一个案例的意思是Item_id。

在这种情况下,它取决于代码的可维护性和存储。好像更改了类别名称,您必须更新大表中的记录,这将是繁重的查询。 此外,当您存储category_id而不是其名称时,它将有助于节省存储空间。因为您没有复制每个记录的类别名称,只是引用category_id。

但很明显,这取决于项目的类别和大小。

答案 1 :(得分:1)

如果 TABLE1 的尺寸相当小(假设最多不超过10k行),则索引 VARCHAR CATEGORY_NAME 应该可以正常工作,否则最好使用单独的表进行存储类别。

就个人而言,我会选择选项2.此处的性能改进不会那么显着,但将字典字段存储在另一个表中是一种不好的做法。