我面临一个问题,我必须设计一个MySQL数据库,该数据库能够包含大约500 K的产品。1.500种,最多可容纳50种规格。(如尺寸、重量、速度、颜色等)。
我的目标是找到/使用一个最优(快速)的设计来根据多达50个规格的输入来选择产品。稍后,当我收集了有关搜索模式的统计信息时,我可能会实现precached --经常使用搜索模式(specs)。
由于我的原始数据在Python (dicts/list)中,我最初考虑使用JSON对象,但在我看来,这将导致巨大的开销,甚至可能导致糟糕的搜索性能。(实际上,我没有在MySQL中使用JSON的经验)
顺便说一句,最简单的方法是使用MongoDB,但这是不可能的。我还试图找到一种方法来设计它尽可能通用,而不需要特定于产品的表。
基于上述信息..。对于规范中的快速搜索,什么样的设计/模式将是最佳/最好的。?EAV (实体-属性-值)是该走的路,还是更好的方法?
如果有人知道这个问题是否在某个地方得到回答,请链接到:-)
谢谢
发布于 2020-06-29 16:12:49
一个共同的要求。你实际上领先于大多数被[eav]标记的问题--你已经考虑过“常见使用模式”,以及如何在收集到这些信息之后进行优化。
您应该能够初步猜测最常见的是什么,将它们放在列中进行高效搜索,在FULLTEXT-indexed列中放置类似标志的属性,然后将其余属性抛到JSON列中,以便在应用程序中测试。
更多:http://mysql.rjweb.org/doc.php/eav
https://dba.stackexchange.com/questions/270065
复制相似问题