2

我将启动一个大型 Web 应用程序,该应用程序将由 PHP(YiiFramework)提供支持,我希望在启动应用程序之前构建一个强大且可扩展的架构,能够处理大量流量。

应用程序 SQL 查询大约(80% 读取,20% 在更新和插入之间),我实际上在数据库中有 15 个表,以及许多 mediumtext 列,这将是许多按文本搜索的查询,例如(WHERE fooLIKE '%VARS%')

我将使用 PHP APC 来提高性能,从 Memcached 服务器开始,并使用 Nginx 作为备用代理。

对于数据库:NoSQL 数据库可以替代 MySQL 之类的 RDBMS 吗?

NoSQL 数据库是否比 MySQL 更高效?

对于我的情况,最好的 NoSQL 数据库解决方案是什么(80% 读取,20% 在更新和插入之间),为什么?

4

2 回答 2

4

LIKE '%term%' 不会缩放。根据表中的行数,查询将始终为 O(N)。添加行时,查询会变慢。

您将需要使用文本索引。看看使用 Sphinx 或 SOLR。

Sphinx 全文搜索 SOLR 全文搜索

于 2012-08-08T05:50:59.910 回答
1

很多问题。

nosql DB 可以潜在地替换 RDBMS。这取决于您的基础架构和组织需求。但从技术上讲,它没有问题。我不知道很多你不能用 map reduce 做的查询,你可以用 sql 做。

如果它更有效取决于您的需求。如果您使用大量文本搜索,请尝试使用 lucene (solr) 之类的索引来提高这两种情况下的性能。但也有使用 nosql 和索引的解决方案。所以一个有经验的 rdbms 程序员绝对可以胜过一个没有经验的 nosql 程序员,反之亦然。

I have some experience with couchdb and it is fast for my application. But it depends. And most stable nosql database are fast, also rdbms are fast. It depends so much on the exact queries and setup.

于 2012-08-08T05:53:39.557 回答