我正在创建一个数据库和一个项目。在这个项目中,我们将创建不同的公司。我们有两个create database选项。
1)为所有公司创建一个公用表,并将所有信息保存在一个表中。假设company_daily_records将包含所有公司数据。假设一家公司有1,00,000条记录,我们有1000家公司,所以这个company_daily_records将有1,00,000 * 1000条记录
2)为每家公司创建单独的数据库表,因此它们将是1000个company_daily_records表,每个表将有1,00,000条记录。
哪个db性能会好,
我们应该更喜欢哪种db sql语言?
感谢
答案 0 :(得分:0)
1)如果您为每个公司创建单独的数据库(更有可能),那么您的记录将被组织。但如果您的项目同时与所有公司打交道,那么您必须经常切换连接。
2)如果您为所有公司创建一个数据库,您还可以添加另一个公司'包括所有可以用作例外'员工'表将员工与特定公司分开...... 但它的记录很复杂,因为它不是非常有组织的形式。
正如你所提到的每日记录可能有数十亿,我建议你使用单独的数据库,这肯定会节省搜索,查询时间是最重要的方面......
- >我想你可以使用mysql来管理你的记录。
三江源
答案 1 :(得分:0)
我不建议为每家公司创建一个表格,因为:
因为你现在处于早期状态,所以使用传统的关系数据库方式是很好的。这是company
表company_record
表。您可以在以后发生或有空余时间进行优化时担心性能
答案 2 :(得分:0)
在您对如何插入和查询数据的方式有所了解之前,请不要为大型数据集设计架构。
你需要避免扫描1亿(10千万)行才能得到答案;它会很痛苦。这意味着索引。
NoSQL意味着没有索引,或者您必须自己构建索引。你可以通过一个真正的RDBMS来为你做这样的繁重工作。
如果按公司拆分为表格或数据库或分区或分片:
我投票支持SMALLINT UNSIGNED
的{{1}}(2个字节)列的单个'大'(但不是'巨大')表。
由于您进入“数据仓库”领域,因此可以想到摘要表。
您要删除“旧”数据吗?这是在大型桌子中担心的另一件事。
每天插入1000行是没问题的。 (1000 /秒将是另一个故事。)