我正在调查从 MySQL 到 NoSQL DBaaS 的大转变,但在尝试预测费用时遇到了问题。从本质上讲,我无法弄清楚我当前的 MySQL 服务器每天处理多少查询来尝试估计我将与Cloudant一起使用的请求数量,每 100 个 PUT、POST 和 DELETE 收费 0.015 美元,每 500 个 GET 收费 0.015 美元和头。
我发现了很多关于使用SHOW STATUS和SHOW GLOBAL STATUS来获取 MySQL 自己收集的统计信息的信息,但没有时间框架参考。
例如,SHOW GLOBAL STATUS 返回以下内容:
Queries | 13576675
Run Code Online (Sandbox Code Playgroud)
这很好,除了我不知道包含该数字的时间范围。什么时候有 1300 万次查询?每月?年?自古以来?
MySQL 文档并没有详细说明太多:
查询
服务器执行的语句数。与 Questions 变量不同,此变量包括在存储程序中执行的语句。它不计算 COM_PING 或 COM_STATISTICS 命令。这个变量是在 MySQL 5.0.76 中添加的。
在此先感谢您的帮助。
我正在为我即将推出的 Project Mangement 应用程序(作为示例)研究架构,我正在寻求明确如何最好地设计 MongoDB 数据层,特别是多租户。该应用程序将有多个“子应用程序”(例如日历、任务列表、媒体、团队等),每个子应用程序将映射到数据库中的一个集合(中央数据库或它自己的项目数据库)。
数据库服务器 == 副本集。
问题
--smallfiles
手册中的文档,但这并没有真正回答我的问题。这是最低要求吗?应用程序堆栈
Ubuntu 12.04 LTS
Nginx
node.js
express.js
MongoDB
Run Code Online (Sandbox Code Playgroud)
当前的工作策略
我目前的工作策略是使用一个数据库来存储更高级别的“全局”数据,例如用户、通知、消息、使用情况和首选项。然后为系统上创建的每个项目创建一个新数据库。
由于许多原因,这似乎是理想的方法:安全性(每个数据库都有自己的凭据)、灾难性恢复(因为如果一个数据库服务器宕机,整个应用程序不会宕机)和性能(我认为,因为 Mongo 会搜索更少的文档以找到它正在寻找的文档)。
该应用程序将包含自动检测任何给定 DB 服务器上的可用空间并在下一个可用 DB 服务器上创建新 Project 数据库的逻辑。
根据MongoHQ 提供的这篇文章,这是“最佳”策略,尽管它会消耗大量存储空间。特别是因为每个数据库即使在空的情况下也占用 32M。如果您提供的“免费增值”应用程序获得了 Techcrunch 的支持,那么使用 MongoHQ 之类的服务会变得非常昂贵。
因此,在 ProjectManager 在系统上有三个项目的情况下,我的数据层将如下所示:
ProjectManager
Users
Notifications
Messages
Usage
Preferences
Project01
Calendar
Tasks
Media
Team
Project02
Calendar
Tasks
Media …
Run Code Online (Sandbox Code Playgroud)