homework, pet project DE Dmitry_Medvedev #1
@@ -0,0 +1,19 @@
|
||||
-- Задание 1. Выбор ключа шардирования
|
||||
-- Ну я тут чето нихера не понял
|
||||
-- Вот users лучше всего шардировать по id, а с orders непонятно. Я не до конца понял логику шардирования, если orders и users на разных шардах, то наверное лучше шардировать по user_id. Но в тоже время логично было бы сделать по order_date.
|
||||
-- Короче я очень плохо понял шардирование, сейчас поищу объяснение на ютубчике и напишу новый ответ.
|
||||
-- В нашем случае мы получается обсуждаем горизонтальное шардирование
|
||||
-- Как я понял, если шардируются две таблицы, то они шардирются по одному полю у нас это users(id) и orders(user_id).
|
||||
-- Я выбрал users(id), тк это уникальное поле и есть join по нему в orders - user_id
|
||||
-- Шардирование будет происходить по хэшу. Быстрее будут выполняться запросы в пределах одного шарда, а запросы где данные берутся из разных шардов да ещё и join - явно станут сложнее.
|
||||
|
||||
-- Задание 2. Добавление нового шарда
|
||||
-- Проблемы: мне кажется временная приостановка записи и чтения таблиц на время 'перешардирования'.
|
||||
-- План: 1. остановить запись и чтение данных; 2. создать 8 новых шардов; 3. перераспределить данные из старых четырех в восемь новых шардов; 4. удалить старые 4 шарда; 5. поменять логику изменения и чтение в бэк энде например 6. разрешить запись и чтение. конец
|
||||
|
||||
-- Задание 3. Шардинг против партиционирования
|
||||
-- При партицировании таблицы данные хранятся на одной бд, внутри одной таблицы, но эта таблица внутри себя разделена на партиции для ускорения запросов к ней.
|
||||
-- При шардировании таблицы данные хранятся на разных серверах, то есть таблица делится на части(при горизонтальном шардировании), и каждая часть таблицы отправляется на разные сервер.
|
||||
|
||||
-- Пример партицирования без шардирования: когда сервер не переполнен, но таблица слишком большая, и и запросы к ней замедляются, тогда таблица делится на партиции, для более быстрого выполнения запросов к ней.
|
||||
-- Пример когда без шардирования не обойтись: это когда сервер перегружен, и физически невозможно добавлять новые данные и чтение таблиц очень медленное, тк для этого чтения сервер не может выделять должное количество ресурсов.
|
||||
Reference in New Issue
Block a user