стратегии извлечения результатов из огромной таблицы базы данных - PullRequest
0 голосов
/ 26 июня 2011

Я полагаю, что многие сталкиваются с этой проблемой: на странице JSP внешнего интерфейса пользователь устанавливает некоторые критерии, на основе которых строится SQL-код и используется для получения результатов из одной или нескольких таблиц базы данных.Проблема в том, что эта таблица растет на 1 миллион в день и становится гигантской.

Я знаю, что нет однозначного ответа на этот вопрос: как мы можем ускорить эту процедуру?Индексирование может быть одним (о котором я много слышал, но мало что знаю), и еще одна вещь, о которой я думаю, - это использовать какое-то специальное решение для кэширования, такое как Gigaspace.Поможет ли Hibernate в этом случае?

Кто-нибудь еще хочет добавить свои 2 цента?

Спасибо большое!John

Ответы [ 2 ]

2 голосов
/ 26 июня 2011

Ну да, вам действительно нужно проиндексировать базу данных!

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

Тогда само по себе не должно иметь значения количество миллионов строк в ваших таблицах базы данных: самое главное в приличной системе баз данных - справляться с таблицами с миллионамирядов.Но вы должны убедиться, что указание , какие строк на самом деле извлечены из этих миллионов, является разумным и что рассматриваемые запросы могут выходить за пределы соответствующих индексов (например, из-за параметроввведенный пользователем, чтобы сузить их).«Добавление индекса» не обязательно является волшебной панацеей: вам нужно убедиться, что у вас есть добавленные индексы, соответствующие тому, как выглядят ваши запросы к моменту их попадания в базу данных.

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

1 голос
/ 26 июня 2011

Индекс является обязательным с таким количеством данных или даже фракция этого! Что касается других ответов, то это действительно зависит от того, что вы планируете делать с таким количеством данных, потому что одна стратегия не будет охватывать все варианты использования.

...