我对编码相当在行,但我是数据库设计方面的新手。这是一个常见的问题,但我没有看到确切的答案,所以我只想确认一下,然后我开始编码所有的东西。
我有一个购物网站,列出了很多产品。目前我有6,000个产品,但这可能会在未来增长相当大,也许有一天100,000+。我按页面列出网站上的产品,让用户搜索和排序产品。
设计和查询数据库以搜索和排序产品的最有效方法是什么?我是否只是创建一个大的产品表,然后使用如下查询:
SELECT *
FROM productTable
WHERE searchCriteria
ORDER BY sortColumn
LIMIT basedOnPageNumber
当我有100,000+项目的时候,它还能快速工作吗?是否有更好的策略可供使用?
发布于 2016-03-09 11:38:48
如果可以在搜索条件上定义索引,那么这在任何规模上都会正常工作。BTree索引具有O(log )性能IIRC,因此处理100,000行的时间为1,000行所需时间的5/3。
但是..。大多数系统都不能满足这一标准。通常,用户可以根据自己的选择填充多少个搜索字段。然后事情就变得复杂了。有时,最好为每个搜索值组合定义单独的查询和索引。很快就会变大。= 120;这是大量的索引和查询。有些数据库管理系统对一般搜索进行了优化-例如,Server中的选项(重新编译)将导致参数嵌入。一些经常使用的特定查询和一般捕获的组合可能会起作用。
随着列表的发布,休的用户会期待更模糊的搜索。在某个阶段,对产品名称和/或描述进行全文搜索可能是有用的。也许,最终,您可以将任务完全卸载。
https://dba.stackexchange.com/questions/131343
复制相似问题