【发布时间】:2009-06-05 22:16:28
【问题描述】:
我是一个相当新的 MySQL 开发人员,并且正在开始一个项目,我可以通过一些初步建议来完成...
我正在创建一个数据库,该数据库主要包含一定数量的项目(在 1-5k 之间)以及与每个项目相关的大约 40 个布尔变量。然后,用户将输入他们对这 40 个值的选择,系统的工作就是确定“最佳”匹配项。这可能是匹配所有 40 个变量的项目,或者,如果不存在,则匹配 39 个等的项目。
所以,如果有人有时间,请询问几个问题!
- 根据我对 MySQL 的经验,对于这种大小的数据库,将数据拆分到单独的表中并没有明显的速度优势。更多表的开销太大而无法对整体性能产生任何可行的影响。因此,我建议简单地创建一个包含 40 列和最多 5000 行的大表来存储所有信息(表锁定不是问题,因为所有查询都是 SELECT)。这与他人的想法和经验相符吗?
- 返回“最佳”匹配的最有效方法是什么?这是否甚至可能仅通过数据库结构和 SQL 命令,或者我将不得不简单地将整个数组返回给 PHP 并在那里运行某种形式的启发式函数以确定最佳匹配?李>
感谢您的时间和帮助!
【问题讨论】:
标签: php sql mysql database-design optimization