Объединение таблиц в базе данных против веб-сервера - PullRequest
0 голосов
/ 13 февраля 2009

У меня было 2 таблицы в кэше на веб-сервере. Размер таблиц значительно огромен. Каждый раз, чтобы получить данные, мне нужно объединить эти две таблицы.

Другой вариант, который у меня есть, заключается в том, что в кэше ничего нет, и каждый раз при вызове db выполняется соединение для таблиц db.

Итак, я хочу знать, что соединение на веб-сервере является более дорогостоящим, чем вызов db, если производительность имеет высокий приоритет. Предложения, пожалуйста ....

Ответы [ 2 ]

4 голосов
/ 13 февраля 2009

Простое правило: Пусть база данных будет базой данных

Базы данных предназначены для объединения. Они написаны очень умными людьми, которые проводят все свое время, беспокоясь о таких вещах. Есть много способов оптимизировать базу данных, чтобы быстрее присоединиться.

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

0 голосов
/ 13 февраля 2009

Я бы посоветовал вам создать представление с помощью объединения и сохранить его в памяти. В MySQL это делается с помощью движка MEMORY. Это должно дать вам лучшее из обоих миров, поскольку за вашими вызовами у вас все еще есть транзакционная система, которая обеспечивает согласованность ваших данных и высокую производительность, поскольку представление поддерживается в памяти, что дает действительно хорошие времена отклика.

Еще одно очень важное преимущество, которое вы получаете от создания представления, - это оптимизированные объединения, которые вам нужно будет запрограммировать самостоятельно на веб-сервере. Однако это преимущество имеет значение только в том случае, если ваши объединения достигают определенной степени сложности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...