MySql数据库可以处理超过一百万个表(大多数是小型,少于10行)吗?我开始了一个项目,它将存储大量文献,每个句子存储在一个由大约2-10行组成的不同表格中。以下是我的一些担忧。
我希望这是提出这个问题的正确位置。感谢。
编辑:
我知道“为什么”的问题会来临!我是众包翻译工作。我目前的计划是让文件的每个句子都有自己的表格。表格的每一行都有每个建议翻译的数据。例如: 表“文档”将包含正在处理的文档的列表。 表“document_1”将是一个文档的文本,每行包含一个句子。 表格“document_1_1”将包含每个建议的翻译。
我愿意听取更好的计划:)
答案 0 :(得分:2)
不,mysql对数据库中的表数没有限制。 虽然,显然,你会受到多少磁盘空间的限制 你有空。
数目:
可能很慢。慢,它可能会开始挂起。
我刚刚看到了数据库数量的限制,这是一种营销策略。我不知道桌子的数量。
一般认为,有一个数据库模式,其中表的数量会随着时间的推移而增长。强烈建议重新设计数据库。
而不是成千上万的表,只需要一个表。添加一个包含您用于命名表的文本的列。
根据我的理解,你可以有一张这四张桌子 列:
- 主键 - bigint
- 名称 - 文字大小100,这可以是您当前的表名(文件名)
- 描述 - 最大文本大小,表中的数据在此列(文档文本)中
- 翻译 - 最大文字大小,翻译在此栏中(翻译文本)
醇>上面的第二列可能是非唯一的,并按照数字重复 表中的行数(2-10次)。
如需更多帮助和建议,请发表您的问题,我知道很多人都很想知道您在这里做什么。
PS。不是mysql的人,我相信你知道使用什么数据类型
答案 1 :(得分:1)
而不是评论,这是一些事实: 使用InnoDB,理论上可以有多达40亿个表。
MySQL将每个数据库存储在自己的文件夹中,其中每个表都包含1-3个文件。这意味着对于100万个表,您将拥有一个包含1-3百万个文件的文件夹。许多文件系统对一个文件夹中可以包含的文件数量有限制,因此根据文件系统的不同,您可能已经受到限制。
当我测试MySQL数据库中只有一个空表时,我得到了该表的两个文件。他们一起大约104 Kb。因此,对于100万个空表,服务器上的存储空间将超过100 Gb。
我不建议从性能和可维护性的角度来看这个架构。