【问题标题】:Mysql search on multiple fields or on merged fieldMysql在多个字段或合并字段上搜索
【发布时间】:2017-05-30 12:46:47
【问题描述】:

我有两张表(简化版):

---------
page
---------
id
deleted

---------
page_data
---------
id
id_page
value_int
value_float
value_text
value_date
value_serialized
value_something_else

page_data 有很多不同的值类型。我希望能够搜索所有内容。这种方法可以吗?

SELECT * FROM page_data WHERE 
value_text LIKE '%" . $keyword . "%' 
OR value_int = ".$keyword."
OR ....
OR ....

或者在页面(或page_data)表中添加“搜索”字段并将所有要搜索的数据合并为全文会更好/更快吗?我不介意更慢的更新和更多的管理。我想要更快的搜索。

任何帮助将不胜感激!

【问题讨论】:

    标签: mysql content-management-system


    【解决方案1】:

    可以有一个包含许多列的表。但是更多的列意味着更多的文件 IO 和更慢的搜索。我建议的是一个不同的表,它引用大表和一个 TEXT COLUMN,并使用 BOOLEAN FULL TEXT SEARCH,如下面的 url https://dev.mysql.com/doc/refman/5.7/en/fulltext-boolean.html

    全文搜索使搜索变得更快!另一种使用方式是 SphinxSearch (www.sphinxsearch.com),它专门从事全文搜索。

    【讨论】:

      猜你喜欢
      • 2015-06-17
      • 1970-01-01
      • 2016-03-04
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多