在我的网站上,您可以搜索“广告”或“分类广告”。有不同的类别。
使用多个表格搜索会更快,每个类别一个,或者不重要吗?
我们正在讨论大约50万个广告。
如果它不会减慢搜索速度,请自行解释一下,以便我理解为什么它不会,因为看起来常识越多,搜索越多,搜索就越慢!
由于
答案 0 :(得分:7)
你的问题有点不清楚。我假设这种情况:
table: ads
id category ad_text
-- -------- ---------------------------
1 pets sample text
2 family sample ad
如果您要搜索广告,那么在每次搜索中搜索多个表格比搜索一个表格要慢。
但是,如果您打算根据“类别”将“广告”分解为多个表格,那么请使用表格名称
并且,以编程方式,您知道您正在寻找程序员广告,因此您可以直接搜索程序员广告表,然后将其分解更快。勉强。
但是,打破它们有许多缺点。你需要:鉴于我们拥有的信息有限,我强烈建议使用一个类别列的一个表,然后继续将其标准化为自己的表。在该列上打一个索引。构建数据库是为了处理正确组织的大量数据行,所以不必担心这么多。
答案 1 :(得分:2)
显然,搜索较小的表(一个类别)比一个较大的表名义上更快。然而,较大的表可能仍然是正确的设计。创建多个相同的表只会让开发人员和经理的生活变得悲惨。此外,如果您对数据进行分段(例如,跨两个类别进行搜索),则某些类型的搜索会更加困难。
正确索引,单表方法将产生几乎与分段方法一样好的结果,同时提供适当设计的好处。
(当然,当你说“单表”时,我假设你的意思是一个表来保存广告实体的核心属性。可能还会有其他表格。)
答案 2 :(得分:1)
取决于。
如果您构建了一个包含文本的非规范化表,那么由于多种原因,它会逐渐变慢。索引有助于某一点。
如果你有一个带有多个表,主键和外键,索引等的规范化结构,它可以更健壮和可扩展。
答案 3 :(得分:0)
数据库非常适合处理500k的增加。在类别上添加一个索引,你应该没问题。
如果您在问题中添加表格定义和类别分布,您可能会得到更好的答案:)