|
|
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
Доброе время суток, уважаемые форумчане! Имеется следующая таблица в БД, которая каждый день пополняется примерно на 1 млн записей и общее количество записей в таблице уже исчисляется десятками мультов. Структура таблицы следующая: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. формат ячеек динамический Когда возникли первые проблемы с выборкой, сделал партиционирование таблицы по полю date , так как выборка в основном происходит по дням определенным, часть проблемы это решило, например отчет за 1 день происходит довольно быстро, но при необходимости выборки за более длительные периоды запрос выполняется неимоверно долго За всю свою практику в первые встретился с такими объемами и нагрузкой, которые с каждым днем прогрессивно растут (( Помогите плиз советом, что можно предпринять! Возможно что-то переделать в структуре или движок таблице сменить? Что угодно что решит проблему... Заранее благодарен! )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 21:25:21 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikkl, вопрос дня : откуда вы взяли 1 млн фактов в день и действительно ли их нужно хранить в mysql ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 21:51:26 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
большая посещалка, одним словом регистрируется каждый просмотр определенного елемента на целой сети сайтов да, нужно хранить? а какая альтернатива, если не mysql ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 21:55:31 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikkl, ну как и предполагалось. Те, кто действительно знает зачем им хранить первичные данные в субд, такие вопросы не задают. Во-первых, что именно в существующих программах анализа файлов журналов вас не устроило ? Во-вторых, можно отказаться от записи статических файлов и снизить объем данных раз в 10. В третьих, Еще один классический прием - предагрегация. Хранение только суммарных данных за большие промежутки типа дней в необходимых разрезах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 22:13:19 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikkl, 1) Зачем в этой таблице поле id? Для чисто статистических нужд оно не требуется. А если от него избавиться, то и первичный ключ становится не нужен. 2) ip-адрес прекрасно вмещается в 4-байтовый int вместо varchar(15). По остальным полям нужно смотреть, возможно, еще что-то сократить удастся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 22:19:10 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
netwind, те кто действительно знает что такое субд никогда не напишут что в них можно хранить данные, так как данные хранятся в бд. из всего остального вами описанного, возможно подошла бы агрегация, но в данном проекте необходимо хранить все подробно, так как есть необходимость подробной информации в различных вариациях. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 00:28:35 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
miksoft, по id согласен, да и ip тоже, но это не решает проблему, а лишь немного оптимизирует таблицу Спасибо! Но вопрос заключается в том как хранить большие объемы в таблице и позволять очень быстро выполнять выборку? может кто встречался с такими же объемами? подскажите как хранить и какие танцы с бубном нужно делать что бы запросы выполнялись быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 00:35:56 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikkl, ну так я же написал : в необходимых разрезах. агрегируйте что cможете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 00:52:15 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikklНо вопрос заключается в том как хранить большие объемы в таблице и позволять очень быстро выполнять выборку? может кто встречался с такими же объемами? подскажите как хранить и какие танцы с бубном нужно делать что бы запросы выполнялись быстрее? Все абсолютно точно так же как и с маленькими - смотрите планы и думаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 00:52:59 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikklНо вопрос заключается в том как хранить большие объемы в таблице и позволять очень быстро выполнять выборку? может кто встречался с такими же объемами? подскажите как хранить и какие танцы с бубном нужно делать что бы запросы выполнялись быстрее?Да небольшие это объемы. Для ускорения запросов применяют обычно индексы. И/или предрасчитанные агрегаты, о которых вам уже говорили. Вы или конкретный запрос покажите, или так и будем обсуждать сферическую оптимизацию в вакууме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 00:53:14 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
miksoftВы или конкретный запрос покажите, или так и будем обсуждать сферическую оптимизацию в вакууме. Товарищ ждет чудо. Одно чудо - секционирование, ему не помогло. Агрегаты можно посчитать только агрегированием. Выборку можно сделать только выборкой. Какое тут может быть чудо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 00:59:26 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
netwindmiksoftВы или конкретный запрос покажите, или так и будем обсуждать сферическую оптимизацию в вакууме. Товарищ ждет чудо. Одно чудо - секционирование, ему не помогло. Агрегаты можно посчитать только агрегированием. Выборку можно сделать только выборкой. Какое тут может быть чудо? Агрегаты я изначально хотел использовать, при разработке, но к сожалению в данном проекте сделать это невозможно, так что агрегирование однозначно отпадает ! Я знаю что это еще не большие объемы, но проблема возникла уже даже при таких объемах Поэтому вопрос конкретный: Можно ли уменьшить время выполнения запросов к вышеописанной таблице ? Либо подскажите альтернативный вариант хранения... P.S: Секционирование я не делал, я делал партиционирование Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 01:11:47 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikkl P.S: Секционирование я не делал, я делал партиционирование по-русски это секционирование. Как у вас на хабре это называется меня не волнует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 01:12:57 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikklЯ знаю что это еще не большие объемы, но проблема возникла уже даже при таких объемах Раз вы столкнулись с проблемами - это уже большие объемы. Вы можете, к примеру из счетчиков mail.ru, lj.ru или каких-нибудь других РЕАЛЬНЫХ статистических сервисов, которые очевидно фиксируют каждое посещение, вытащить единичные посещения за позапрошлый год ? Подумайте почему они их не показывают, но задачи свои выполняют при намного большем охвате аудитории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 01:16:45 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikklПоэтому вопрос конкретный: Можно ли уменьшить время выполнения запросов к вышеописанной таблице ?Увы, вопрос совсем не конкретный. Для некоторых запросов можно, для некоторых нельзя. А для некоторых можно, но ценой увеличения времени выполнения некоторых других запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 02:06:28 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
netwindvadikkl P.S: Секционирование я не делал, я делал партиционирование по-русски это секционирование.Не спорьте - и так, и эдак называют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 02:07:37 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
Думаю что дальнейшую оптимизацию стоит делать исходя из того, какие запросы необходимо будет делать к данной таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 05:43:19 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
miksoftnetwindпропущено... по-русски это секционирование.Не спорьте - и так, и эдак называют. Косноязычные программисты. В википедии и русской серьезной литературе используют исключительно более понятный термин секционирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 09:33:07 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
kixiro, в том то и загвоздка, что в дальнейшем будут выполнятся как скрипты по выборке, так и скрипты на добавление и обновление записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 15:54:08 |
|
||
|
Оптимизация таблицы
|
|||
|---|---|---|---|
|
#18+
vadikkl, чтобы существенно ускорить процесс выборки, тут только одно решение - секционирование. Если выборки идут по всем параметрам и секционирование по какому либо параметру в каком-то случае приведет к тому, что нужно будет обходить все части, то можно ещё вот что сделать: продублировать запись и сделать секционирование по разным параметрам, а на уровне приложения исходя из условий запроса вибирать к какой копии выполнять запрос. Потому что как не оптимизируй одну таблицу, обход по всем значениям в любом случае дольше, чем по маленькой секции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 19:44:44 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38383036&tid=1836141]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 330ms |

| 0 / 0 |
