首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建海量数据数据库的几点建议

构建海量数据数据库的几点建议
EN

Stack Overflow用户
提问于 2012-11-15 17:18:09
回答 1查看 180关注 0票数 0

我正在Windows服务器上使用JavaScript、MySQL和PHP进行远程访问。

我有5,000个结构相同的数据集,我想放在一个数据库中。对于数据来说,5个表就足够了,所有这些表都会相当小,除了一个具有典型数据集的300,000+记录的表之外。

此外,500个用户将获得从这些数据集编译的统计数据的只读访问权。这些统计数据由PHP提供(不允许直接访问)。而且,他们对数据的访问也各不相同。一些用户只能使用一个数据集,而另一些,一些,全部。

用户看到的结果相对较小;大多数请求返回的行数远低于100行,最大的请求将大约为700行。所有请求都是通过一个JavaScript RIA来实现的,后者使用Ajax连接到PHP,然后连接到数据,然后执行它的操作并输出JSON响应,然后JavaScript相应地给出相应的JSON。

在考虑如何构造这一结构时,有三种选择:

  1. 将数据集放在相同的表中。这很容易就能给我提供1500,000,000张最大表中的记录。
  2. 对每个数据集使用单独的表。这将限制最大的表大小,但可能意味着25,000张表。
  3. 忘记数据库,坚持专有格式。

我倾向于第二,有几个原因。

  1. 我担心使用大型表时的问题(例如:查询速度、实现限制等.)。
  2. 单独的表似乎更安全;它们限制了错误和结构更改的影响。
  3. 单独的表允许我使用MySQL的表级安全性,而不是实现自己的行级安全性。这意味着更少的工作和更好的保护;例如,如果在没有行级安全性的情况下意外发送查询,则用户可以获得未经授权的数据。对于表级安全性则不是这样,因为数据库将无法控制地拒绝查询。

这是我的想法,但我想要你的。你认为这是正确的选择吗?若否,原因为何?我错过了什么考虑?如果规模能力是一个问题,我应该考虑其他平台吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-15 19:46:31

1)我关心使用大型表的问题(例如:查询速度、实现限制等.)。

数据库管理系统是否必须..。

  • 搜索一个表的大索引,
  • 或搜索正确的表,然后搜索该表的较小索引。

就性能而言,...probably并没有带来多大的差异。如果有的话,第二个案例有一个没有文档的组件(定位正确表的性能),所以我不愿意完全信任它。

如果您想对数据进行物理分区,请从5.1版开始使用MySQL 直接支持,这样您就不必通过单独的表来模拟数据了。

2)单独的表似乎更安全;它们限制了错误和结构更改的影响。

这就是备份的目的。

3)单独的表允许我使用MySQL的表级安全性,而不是实现自己的行级安全性。

确实如此,但是可以通过视图或存储过程实现类似的效果。

总之,我的直觉是使用单一的表,除非你事先知道这些数据集在结构上有足够的不同,因此需要独立的表。顺便说一句,我怀疑与优化良好的数据库相比,您是否能够更好地使用专有格式。

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

https://stackoverflow.com/questions/13402798

复制
相关文章

相似问题

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