首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设计用于搜索优化的MySQL表结构

如何设计用于搜索优化的MySQL表结构
EN

Stack Overflow用户
提问于 2020-05-23 11:59:20
回答 1查看 166关注 0票数 0

你们好啊,

对于如何设计MySQL表结构进行搜索优化,我需要一些建议。

我正在创建一个房地产网站。因为我有属性表及其所有关联的表。

我可以用两种方式来设计保存这些记录的表格。

我有舒适的主桌

代码语言:javascript
复制
id property_name
----------------
1  Property A
2  Property B
3  Property C

方法1属性表

代码语言:javascript
复制
id property_name
----------------
1  Property A
2  Property B
3  Property C

Property_Amenities表

代码语言:javascript
复制
id p_id  amenity_id
------------------------
1  1     1       
2  1     2
3  1     3
4  1     4       
5  2     1
6  2     1

方法2

属性表

代码语言:javascript
复制
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 

Approach 1查询:我可以连接表并获取特定属性的所有便利设施名称。添加优化所需的索引。对于一个物业,平均有20种便利设施。假设我有100 K属性记录,然后为了获得特定属性的便利条件,MySQL查询将在2百万记录中搜索Property_Amenities表。

方法2查询:我可以使用FIND_IN_SETIN MySQL操作符进行搜索。但我正在浏览这个搜索主题,而且这种方法似乎需要大量的资源,而且对于相同数量的数据(即100 k属性记录)来说,成本也会更高。

任何建议都会被采纳。你对这个场景的想法或者我应该遵循的任何其他方法。

EN

回答 1

Stack Overflow用户

发布于 2020-05-23 12:00:35

使用第一种方法。句号。第二个是错的,错的,错的。以下是一些原因:

不应该使用SQL字符串来存储多个values.

  • Integers,应该使用正确的类型来存储。应该声明

  • 外键关系。

  • SQL的字符串处理方法非常糟糕。

  • SQL有一种很好的存储列表的方法;它被称为“表”而不是“字符串”。

<代码>F 211>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61971687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档