考虑一个products
包含产品详细信息(包括其类别)的表。一种产品可能属于多个类别,因此我将其保留为以逗号分隔的类别 ID 列表。
我知道这不是标准化的方法。
任何 MYSQL 专家都可以告诉我哪种方法可以更快地选择特定类别的产品。
显然,如果采用规范化方法,我们必须将products
表和表连接起来。products_category_relation
和
在我的方法中,我们必须编写一个类似的查询来查找产品(假设我们正在搜索类别 id 10)
SELECT p.*
FROM products p
WHERE p.category like '10'
OR p.category like '10,%'
OR p.category like '%,10'
OR p.category like '%,10,%'
谁能告诉我这种方法更快还是 JOIN 方法会更快?
我知道规范化。我知道我的方法涉及的其他风险。但就我而言,它们并不重要。所以,我关心的是速度。
欢迎任何关于其速度的理论解释或实际测试结果。
更新
我正在使用 myISAM 引擎产品表在表的列上有主键全文product_id
索引category
products