我正在Windows服务器上使用JavaScript,MySQL和PHP进行RIA。关于用大量数据构建数据库的建议
我有5000个相同结构的数据集,我想放在数据库中。 5张表对于数据来说已经足够了,除了一张表格以外,所有这些数据都是相当小的,对于一个典型的数据集,这个表格将会有300,000多条记录。
另外,500位用户将只能读取从这些数据集编译的统计信息。这些统计数据由PHP提供(不允许直接访问)。而且,他们对数据的访问也不尽相同。一些用户只能使用一个数据集,其他一些只能使用一个数据集。
用户看到的结果相对较小;大多数请求会返回100行以下,最大的请求将大约700行。所有请求都是通过一个JavaScript RIA,它使用Ajax连接到PHP,后者又连接到数据,完成它的任务并输出JSON作为响应,然后JavaScript将相应地显示。
在思考如何构建这样,三个选项出现了:
把数据集相同的表所示。这可以很容易地在最大的桌子上给我15亿条记录。
为每个数据集使用不同的表格。这将限制最大的表格大小,但可能意味着25,000个表格。
忘记数据库并坚持专有格式。
我倾向于#2的几个原因。
我很关心使用非常大的表格(例如:查询速度,实施限制等)的问题。
单独的桌子看起来更安全;它们限制了错误和结构变化的影响。
单独的表格允许我使用MySQL的表级安全性,而不是实现我自己的行级安全性。这意味着更少的工作和更好的保护;例如,如果在没有行级别安全性的情况下意外发送查询,则用户可能会收到未经授权的数据。与表级安全性不同,因为数据库将会无效地拒绝查询。
这些是我的想法,但我想你的。你认为这是正确的选择吗?如果不是,为什么不呢?我错过了什么考虑?我应该考虑其他平台,如果可扩展性是一个问题?
mysql确实支持分区:http://dev.mysql.com/doc/refman/5.1/en/partitioning.html –
谢谢。我正在研究这个。分区级别的安全性(如果可能的话)会摇摆:D – RonaldBarzell