我将启动一个大型web应用程序,该应用程序将由PHP (YiiFramework)驱动,我希望在启动该应用程序之前建立一个强大且高可伸缩性的体系结构,能够处理大量的流量。
应用SQL查询大约(80%读取,20%在更新和插入之间),我实际上有15个表在数据库中,和许多媒体列,这将是许多查询搜索文本例如(其中foo喜欢'%VARS%')
我将使用PHP APC来提高性能,从Memcached服务器开始,并使用Nginx作为备用代理。
对于数据库:像MySQL这样的NoSQL数据库能取代关系型数据库吗?
NoSQL数据库比MySQL更高效吗?
对于我的情况,最好的NoSQL数据库解决方案是什么(80%读,20%更新和插入),为什么?
发布于 2012-08-08 13:51:00
LIKE '%term%‘将不会缩放。根据表中的行数,查询将始终为O(N)。添加行时,查询速度会变慢。
您将希望使用文本索引。看看如何使用Sphinx或SOLR。
发布于 2012-08-08 13:53:40
很多问题。
nosql DB可能会取代RDBMS。这取决于您的基础设施和组织需求。但从技术上讲,这没有问题。我不知道有很多查询你不能用map reduce来做,你可以用sql来做。
它是否更有效率取决于您的需求。如果您使用大量的文本搜索,请尝试使用lucene (solr)之类的索引来提高这两种情况下的性能。但也有使用nosql和索引的解决方案。因此,一个有经验的rdbms程序员绝对可以胜过一个没有经验的nosql程序员,反之亦然。
我有一些使用couchdb的经验,它对我的应用程序来说很快。但要视情况而定。而且大多数稳定的nosql数据库都很快,rdbms也很快。这在很大程度上取决于准确的查询和设置。
https://stackoverflow.com/questions/11858086
复制相似问题