mysql - 我应该为不同的客户创建更多的数据库 - Meteor 吗?
问题描述
我正在使用 Metoer 和 mysql 来构建我的网络应用程序。我可能有多个客户。每个客户都有大部分相同的逻辑。它们具有相同的数据结构,但有些表会很大。不同的客户是完全分开的。
我只是想知道我是否可以分别为客户端创建不同的数据库(每个数据库都有相同的表,但我不必通过加入不同的客户端来获取数据。),还是只有一个数据库?我不知道哪种方式更好。
我认为使用单独的数据库有利于数据管理。但我担心表现。
如果我只为多个客户端使用一个数据库。有些桌子会非常大。也会影响性能。
有任何想法吗?
解决方案
我认为这主要取决于您的数据库服务器的资源。最重要的是内存。您可以调整一些配置设置以提高性能,当然还有性能监控应用程序可能会有所帮助。就个人而言,我不会为每个客户创建一个新的数据库。我可能会选择带有 innodb_file_per_table 选项的 InnoDB 来将每个表存储在自己的文件中。除此之外,我会依靠监控软件提出提高效率的建议。
https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_file_per_table
对于性能监控,请查看集群控制。他们提供免费版本。
https://severalnines.com/product/clustercontrol/performance-management
推荐阅读
- javascript - 文件夹获取新项目时如何更新页面而不重新加载?
- node.js - 没有调用 DeserializeUser 并且没有使用 express 和 passportJS 将 cookie 发送到客户端
- fasm - 为什么仅使用符号标志不能进行带符号的数字比较
- python - 使用 Opencv 和 Python 训练 SVM 和预测
- python - 是否可以通过 scikit.learn 创建一个预测分层类/标签的 RandomForestClassifier?
- arrays - 打字稿:如何在数组中按分钟分组?
- java - Spring MVC - 来自过滤器的内容类型感知响应
- javascript - Google Apps 脚本:在对象文档中找不到函数 insertText
- python - 管道 - 类型错误:fit_transform() 接受 2 个位置参数,但给出了 3 个
- ios - 在 Cordova iOS 包中找不到 `OBJROOT="$OBJROOT"` 以尝试修复构建错误:xcodebuild:命令失败,退出代码为 65