我在StackOverflow上有这个山姆的问题,我被建议在这里问它,希望得到更多的信息。以下是一个问题:
我处于相当不利的境地。我有一个名为VibeTrib的aspdotneststore前端电子商务应用程序和搜索附件。我没有这两个的源代码。在StoreFront和VibeTrib上运营的商店拥有近25万种产品。而且我们有很多过滤器。我和ViTrib代表谈过了,他们想要额外的钱,这样他们就可以优化他们使用的查询。他们需要的钱没什么大不了的,但问题是我不再相信他们了。我们得到的东西和广告上的东西大不相同。
长话短说。我现在正在Amazon上运行这个商店,不管我设置了什么DB (MsSQL 2012)服务器(我尝试了32 DB的RAM怪物实例),它都很慢。Ajax搜索使用全文搜索,并显示搜索关键字相对较快,但一旦执行搜索(显示所有结果),它仍然是缓慢的!
我能做些什么来加速我自己的速度吗?我完全控制EC2实例( 2012和IIS8)。我可以设置IIS来进行搜索并缓存其中的一些内容吗?我希望至少能隐藏一些最常见的词。
我最好的选择是IIS 8 :)
我的案子有什么帮助吗?
谢谢
发布于 2012-12-04 16:51:49
从根本上讲,这几乎肯定是一个数据库问题。首先要检查的是表上的索引。如果全文搜索速度快,选择速度慢,那么执行的联接很可能会受益于索引,甚至可能是复合索引。
您将需要分析应用程序(使用SQL事件探查器运行跟踪)并查看查询的持续时间值。你甚至可以显示查询执行计划。。这样调优的好处是您不需要访问应用程序源;您只是在数据库中添加索引。适当的索引将在大型数据集中产生所有不同的结果。
发布于 2012-12-04 16:48:00
您可以采取步骤优化DB。例如,您可以拥有全文索引字段,这大大增加了SQL搜索查询的响应时间(特别是当它包含中大型文本体时)。
除此之外,你需要看一看问题是什么。如果没有对源代码的访问,这是很困难的,但在我看来,如果速度非常慢,那么它可能不是非常有效的代码。它可能在对小数据进行数百甚至数千个单独的DB查询,而不是分组。如果您没有能力修改源代码,那么您就不能做任何事情来改变这一点。
因此,从查看DB结构开始,并尝试确保它是完全索引的等等。如果它仍然太慢,那么您需要访问源代码,这样您就可以自己修改软件,或者找到不同的产品。
我希望这能帮到你。
索引链接:
正式文件
MySQL性能博客
MySQL优化
P.S.SQL搜索速度非常快,因此尝试使用IIS缓存结果并不一定很有效率。如果您有一个索引良好的数据库,那么可能是由于查询的数量,而不是响应每个查询所需的时间。记住,代码所做的每一个新查询都有开销--比如建立连接的时间、读/写操作等等。
https://webmasters.stackexchange.com/questions/38584
复制相似问题