Должен ли я создать больше базы данных для другого клиента - Meteor? - PullRequest
1 голос
/ 10 марта 2020

Я использую Metoer и mysql для создания своего веб-приложения. У меня может быть несколько клиентов. У каждого клиента большая часть одинаковых логик c. Они имеют одинаковую структуру данных, но некоторые таблицы будут огромными. Разные клиенты полностью отделены друг от друга.

Мне просто интересно, могу ли я создать отдельную базу данных для клиента отдельно (каждая база данных имеет одинаковые таблицы, но мне не нужно извлекать данные путем объединения разных клиентов.), Или только одна база данных? Я не знаю, какой путь лучше.

Я думаю, что это хорошо для управления данными с использованием отдельной базы данных. Но я беспокоюсь о производительности.

Если я просто использую одну базу данных для нескольких клиентов. Некоторые из таблиц будут чрезвычайно огромными. Также повлияет на производительность.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

Физический размер таблицы или базы данных на самом деле не имеет значения, если таблицы правильно проиндексированы. В случае нехватки производительности, вы можете рассмотреть возможность шардинга. Основной причиной, по которой вы можете выбрать одну базу данных для каждого пользователя, является безопасность. Действительно, если каждый пользователь имеет доступ к своей собственной базе данных, нет риска случайного раскрытия данных других пользователей. С организационной точки зрения я бы посоветовал вам использовать go с единой базой данных для всех пользователей.

0 голосов
/ 10 марта 2020

Я думаю, что это зависит главным образом от ресурсов вашего сервера БД. Самое главное ОЗУ. Существует несколько параметров конфигурации, которые можно настроить для повышения производительности, и, конечно, есть приложения для мониторинга производительности, которые могут помочь. Лично я бы не стал создавать новую базу данных для каждого клиента. Я бы, вероятно, выбрал InnoDB с опцией innodb_file_per_table, чтобы хранить каждую таблицу в своем собственном файле. Кроме того, я бы положился на программное обеспечение для мониторинга, чтобы давать рекомендации по повышению эффективности.

https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_file_per_table

Для мониторинга производительности обратитесь к Cluster Control. Они предлагают бесплатное издание.

https://severalnines.com/product/clustercontrol/performance-management

...