我正在使用php和mysql制作提要聚合器。并且写一篇关于它的论文,必须包含数学。
我有一个表feeds (id、title、description、link),其中id是主键。当我收集新的提要时,我需要将它们添加到数据库中,但我不能让任何副本进入。我认为有两种方法可以做到:
1)对于每个提要,运行如下所示:
SELECT id FROM feeds
WHERE title=$feed.title AND description=$feed.description;看看它是否返回任何提要。
2)假设来自不同来源的饲料永远不匹配。在本例中:对于每个提要源,运行如下所示:
SELECT title, description, source FROM feeds WHERE source=$source;然后使用PHP将收集的提要与此数组匹配。
我承认我没有任何表演上的问题。但是我正在写一篇关于这个问题的论文,我必须找到一些方法来应用数学来解决这个问题。我选择了第二种方法,因为它允许我深入研究为什么它可以更快的数学细节。但我怀疑php的工作速度可能比mysql慢得多,而且对每个提要运行查询可能会更快。
我说的对吗?是否有任何实际理由选择第二种方法?我怎样才能证明我的选择是合理的呢?
发布于 2011-05-31 19:10:51
您考虑过使用复合唯一索引来代替吗?
alter table feeds add unique index(title, description);这将防止在表中已经出现标题和描述时添加新行。
但是,要真正获得性能值,您必须在大型数据库中执行大量的插入操作。
编辑: MYSQL总是被认为是唯一的,所以您可以有几行输入,即title=null和description=null。在尝试插入数据之前,应该检查这一点。
发布于 2011-05-31 19:02:54
对于数学,考虑一下缩放对数据库的影响是什么。为第一个提要添加一个新提要需要多长时间?一万号怎么样?那第一千万呢?现有提要数量的增加会以何种方式影响添加新提要的速度?
发布于 2011-05-31 19:04:16
PHP和MySQL:都运行在服务器端,不像clientside/Browser中的javascript。
如果你没有更多的数以百万计的数据,它将不会是缓慢的。
https://stackoverflow.com/questions/6192162
复制相似问题