首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库优化

数据库优化
EN

Stack Overflow用户
提问于 2018-08-13 02:56:25
回答 2查看 53关注 0票数 1

我正在启动一个web应用程序,它将被许多公司使用(超过20K),最重要的是,每天都会记录很多信息。我希望您就以下想法提出建议:为每家公司创建一个数据库,以便进行如下sql查询:

代码语言:javascript
复制
select * from enterprisedb1.tablename;
select * from enterprisedb2.tablename2 where enterprisedb2.tablename2.col='foo'

拜托,我需要你的建议,我在谷歌上什么都找不到

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-13 04:11:29

如果您要将它卖给多个客户端,那么可能会导致他们数据的分离。

一方面,应用程序的所有内容都在每个客户端的一个数据库中,并且只要正确使用连接字符串,您可能就不需要再为应用程序的其余部分指定公司名称了。每个查询都不再有"where customer=123“。

这也意味着客户可以被删除,备份,移动,审计,任何完全独立的方式。

这也意味着不存在开发人员或查询不小心进行跨客户端操作的风险。因此,您甚至可以打开通用查询访问,但仍然不能意外地越过客户端到客户端的边界。安全设置也会更简单。

但是如果你有一百万个客户,你就会有很多数据库。它的工作效果将取决于各种事情,包括您选择的数据库。

除非您创建额外的“公共”数据库或类似的东西,否则也会有多个引用数据副本。

这将是一个非常“取决”的答案,但这是一些需要考虑的事情。

票数 2
EN

Stack Overflow用户

发布于 2018-08-13 04:16:11

我建议对每一家公司使用通用的桌子。它会更好的管理和易于理解。

为公司数据创建一个表,并在另一个mete数据表中使用该键的Integer引用。为了获得更好的性能,索引和查询必须有良好的格式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51814645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档