我正在将具有1亿行的MySql表迁移到MongoDB数据库,该表存储公司的文档,它们的区别是company_id列。我想知道mongodb上是否有多个集合比仅一个集合要快,例如,每个公司都会拥有自己的集合(集合:company_1,company_2,company_3 ...),并且仅存储该公司的文档,所以我会如果我只有一个大集合,并且在每个文档中都有一个名为company_id的列将用于过滤文档,则无需进行过滤。 在这种情况下,哪种方法效果最好?
编辑: 这是一个JSON文档示例:https://pastebin.com/T5m2tbaY
{"_id":"5d8b8241ae0f000015006142","id_consulta":45254008,"company_id":7,"tipo_doc":"nfe","data_requisicao":"2019-09-25T15:05:35.155Z","xml":Object...
答案 0 :(得分:1)
每个公司可以有一个馆藏和一个文档,并在文档中包含公司的详细信息,前提是这些详细信息的大小不超过16MB。由于性能原因,在公司ID上放置一个索引。如果性能条件未达到预期的垂直扩展-即添加内存,CPU,磁盘IO和网络增强功能以提高性能。如果那还不够,请考虑在多个主机之间分片集合。