|
|
|
Организация хранения с разбивкой на части
|
|||
|---|---|---|---|
|
#18+
Есть таблица (пример просто суть): фамилия имя отчество др квартира дата С Запросы к ней идут двух типов: 1. поиск по фио др с целью получить адреса, где проживал человек 2. поиск по квартире с целью получить всех кто в ней когда-либо проживал На данный момент все хорошо: делается два индекса для каждого поиска и вперед Теперь задача разбить эту таблицу на части по неск. десятков млн, что-то вроде самопального патиционирования. Варианты: 1. Можем разбить например по годам или например по пятилеткам. Плюсы: - просто - будет возможность легко отрезать совсем старые данные Минусы: - придется для каждой таблицы делать те же два индекса и любой из двух типов запросов по факту будет обращаться ко всем таблицам, на которые будет разбита исходная (нет "патишн пранинга") 2. Можно создать два "хранилища" с разбивкой на части, каждое будет работать для конкретного типа запросов и иметь соответствующую разбивку например одно разбито на части по хэшу фио, другое - по номеру квартиры Плюсы: - при поиске будем сразу обращаться к нужной части, а не лезть в каждую отдельно Минусы: - немного сложнее в реализации и сопровождении - требуется больше места на дисках - затратнее удалить "старые" данные Есть опыт в использовании первого варианта. Все работает вполне сносно и по скоростям и по сопровождению. Но. Вопрос: Какие есть еще варианты? Может реален какой-то симбиоз/компромисс? При этом реально типов запросов может быть не два, а например 5, создавать под каждый отдельные таблицы/индексы только для пранинга острой необходимости нет конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2017, 13:05 |
|
||
|
Организация хранения с разбивкой на части
|
|||
|---|---|---|---|
|
#18+
Avotgeбудет возможность легко отрезать совсем старые данныеТ.е. это единственная причина партиционирования? AvotgeВсе работает вполне сносно и по скоростям и по сопровождению.Очень большой плюс. Avotgeзапросов может быть не два, а например 5Тем более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2017, 13:15 |
|
||
|
Организация хранения с разбивкой на части
|
|||
|---|---|---|---|
|
#18+
ElicТ.е. это единственная причина партиционирования? Единственная причина - немного удобнее администрировать мелкие таблички, чем одну большую, "отрезать" данные скорее, никто и не собирается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2017, 13:30 |
|
||
|
Организация хранения с разбивкой на части
|
|||
|---|---|---|---|
|
#18+
AvotgeЕдинственная причина - немного удобнее администрировать мелкие таблички, чем одну большую,Неубедительно. Звучит как "это модно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2017, 13:33 |
|
||
|
Организация хранения с разбивкой на части
|
|||
|---|---|---|---|
|
#18+
ElicНеубедительно. Звучит как "это модно". Возможно. Причин можно придумать и больше - возможность распараллеливания обработки например (хотя на это все равно нет мощностей), но админу просто так удобнее (все-таки ворочать табличку и индексы с под млрд записей иногда очень и очень неудобно особенно когда стеснен в дисковом пространстве). В общем понял, что каких-то интересных альтернативных эффективных вариантов не видно ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2017, 13:45 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=173&tid=1886343]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
101ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 418ms |

| 0 / 0 |
