Как быстро ваша текущая система? Разработка хорошей схемы базы данных - это основа всего вашего приложения, и если бы мне пришлось выбирать между скоростью и дизайном, я бы выбрал дизайн. Есть несколько способов ускорить работу вашего приложения, которые не имеют ничего общего с самой базой данных.
Если вы выполняете параллельную установку (запускаете старую систему с новой системой), вы можете отслеживать медленные журналы запросов и предотвращать любые начальные проблемы с медлительностью на ранних этапах. Вы также можете идентифицировать часто выполняемые запросы и оптимизировать запросы, добавляя новые или редактируя существующие индексы.
Вы также можете реализовать слой кэширования, который значительно ускорит ваше приложение. Кэширование действует как слой между вашим приложением и базой данных, где вы можете хранить часто запрашиваемую информацию в энергозависимом, но быстро доступном состоянии.
Другим методом оптимизации является увеличение (увеличение физической емкости отдельных машин) или масштабирование (добавление большего количества машин в кластер с репликацией). Я видел, как системы работают очень быстро с 10 миллионами записей на машинах с 64 ГБ оперативной памяти. Поэтому убедитесь, что ваш дизайн включает в себя физические возможности.
Существует целый ряд методов оптимизации, которые вы можете использовать для обеспечения быстрой базы данных; держитесь подальше от текстовых столбцов, не используйте операторы OR, избегайте ORDER BY RAND () и ограничивайте использование операторов группировки, таких как group by
. Это всего лишь несколько примеров, поэтому сделайте некоторые исследования. Чтобы упростить оптимизацию, вы можете использовать такие инструменты, как объяснение MySQL, которые будут определять, насколько болезненным может быть запрос при запуске через приложение.
Я бы настоятельно рекомендовал использовать MySQL от Percona , поскольку они высоко оптимизированы и предлагают пользовательские функции.
Звучит так, будто вы и ваша команда идете по правильному пути, не беспокойтесь о разработке сложной системы. Некоторые программные приложения требуют сложных систем для работы. Настоящая хитрость заключается в том, чтобы сделать сложные системы простыми в использовании, чтобы вы могли легко их поддерживать и развивать в будущем. Удачи.