大家好
我需要一些建议,如何设计MySQL表结构,以利于搜索优化。
我正在创建一个房地产网站。在这一点上,我有属性表和所有相关的表。
我可以设计我的表保存这些记录在两个方面。
我有设施主表
id property_name
----------------
1 Property A
2 Property B
3 Property C
办法1属性表
id property_name
----------------
1 Property A
2 Property B
3 Property C
属性_属性表
id p_id amenity_id
------------------------
1 1 1
2 1 2
3 1 3
4 1 4
5 2 1
6 2 1
办法2 属性表
id property_name amenity_id
----------------------------
1 Property A 1,2,3,4,5
2 Property B 1,4,7,9,12
3 Property C 3,4,7,8,9,10
方法1查询 : 我可以连接表,并获得特定属性的所有设施名称。添加优化所需的索引。对于A属性将有20个设施的平均值。假设我有 100K 属性记录,然后得到特定属性的设施,MySQL查询将搜索在 200万 属性表的记录。
方法2 查询 : 我可以用以下方法搜索 FIND_IN_SET
或 IN
MySQL运算符。但我正在通过这个搜索主题,似乎这种方法将是资源密集型和成本更多的相同数量的数据,即100k财产记录。
任何建议将是适当的。你的想法在这种情况下或任何其他方法,我应该遵循。
使用第一种方法。 期间。 第二种方法是错误的,错误的,错误的。 这里有一些原因。