Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: MySQL 5.6 или PostgreSQL 9.4 [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Опрос
Что выбрать?
Для голосования и просмотра результатов опроса войдите или зарегистрируйтесь

> Без описания
LIME
Отправлено: 27 Мая, 2015 - 08:58:59
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Кстати как у слоника обстоит с горизонтальным партицированием?
Слышал там это дело просто эмулируется
 
 Top
MiksIr
Отправлено: 27 Мая, 2015 - 12:24:43
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Ну "эмулируется" - не совсем верное слово, но такого как в mysql (все спрятано внутрях) там нет.

В Постгресе есть наследование таблиц и constraints на таблицу. На базе этого и построено партицирование, т.е. создаются таблицы "наследники" от базовой таблицы с указанием - какой диапазон данных туда пихать. Но поскольку это получаются как бы разные таблицы, если мы хотим единую точку входа для работы с партициями, то нужен обвес из тригеров. В общем может быть довольно гиморно, хотя есть готовые расширения по созданию партиций и обвеса.

С другой стороны партиция-как-таблица позволяет, например, создавать разные наборы индексов на разные партиции.

И еще следует отметить, что часть задач, которые в mysql решается партициями (уменьшение размера индекса), в postgres решается частичными индексами и никаких партиций не нужно.

(Отредактировано автором: 27 Мая, 2015 - 12:27:15)



-----
self-banned
 
 Top
LIME
Отправлено: 27 Мая, 2015 - 12:31:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Ну тогда если я верно понимаю то частичные индексы хороши как покрывающие
А вот для псевдослучайного доступа к остальным данным огромной таблицы не помещающейся в памяти (а иначе зачем партицирование) они не особо и помогут
Не?
 
 Top
MiksIr
Отправлено: 27 Мая, 2015 - 13:02:51
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


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

Вот если есть ярко выраженные горячие и холодные данные, то помогает. Но и частичный индекс поможет - на горячие данные. А для холодных будет фулскан, ну или второй индекс построить можно.


Не, преимущества нормального партицирования есть, конечно, особо если партиции разносить по дискам разным. Так что тут есть куда постгресу двигаться. Но не то, что бы киллер-фича, партиции вообще не часто используют, и чаще всего что бы уменьшить размер индекса как раз.


-----
self-banned
 
 Top
LIME
Отправлено: 27 Мая, 2015 - 13:07:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Нене
Допустим частичный индекс влезает в память
Только вот если он не покрывающий то придется лезть на диск за данными
А вот у мускула и данные находятся в небольшой таблице
И значит вся таблица скорее всего уже в памяти
А у слоника даже при частичном индексе по горячим данным придется за ними на диск лазать
Не?
(Добавление)
Под псевдослучайным доступом я имел ввиду антоним последовательного
Для которого обращение к диску не проблема
 
 Top
MiksIr
Отправлено: 27 Мая, 2015 - 13:16:25
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Да, тут вы правы, в таких случаях скорее всего партицирование нужно. Хотя если честно я не очень вкурсе, что там кешируется в памяти из данных и по какому принципу ;) Нужно погуглить или потестировать как себя такие случаи вести будут.

Да в общем партицирование через наследование тоже вполне рабочее решение. Может не очень красивое, но рабочее, а если использовать готовые расширения (которые создают всякие тригеры и вьюхи), то и не сложное.


-----
self-banned
 
 Top
LIME
Отправлено: 27 Мая, 2015 - 13:20:06
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Ну да
Но в любом случае серебрянной пули не бывает
Я бы убил пару выходных и проштудировал всякие mysql vs postgresql
Глядишь и узнаешь что удобнее под конкретный проект
Хотя подозреваю что postgres))
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB