Всем привет, коллеги. Я к вам с вопросом, каким способом можно

организовать горизонтальное масштабирование mysql базы данных?
Есть некий сервис, который работает с mysql под windows server 2012.
В сутки он может писать в базу тысячи данных.
В общей сложности файлы таблиц формата ibd на сегодняшний день занимают около 800 ГБ дискового пространства.
Все это дело крутится на железе с 24 ядрами CPU, 144ГБ ОЗУ, на рэйде из SSD дисков.
При построении отчетов в ПО, которое работает с БД, возникают долгие задержки.
Вот и думается, а нельзя ли "размазать" данную БД на несколько хостов?
Может, кто-то подскажет иное решение возникшей задачи, буду благодарен.

17 ответов

54 просмотра

Самое простое read write replica

Техник- Автор вопроса
Slava Rozhnev SQLtest.online https://phpize.online
Самое простое read write replica

по-русски, это репликация master-slave? Или нечто иное?

>Вот и думается, а нельзя ли "размазать" данную БД на несколько хостов? Вам -- не получится. >Может, кто-то подскажет иное решение возникшей задачи, буду благодарен. Нанять DBA.

Техник
С чего же такой вывод? ))

Да так, с мелких шэроховатостей. С того, что вы приводите довольно неинформативные, зато очевидные характеристики жэлеза -- количество ядер и ОЗУ. Если бы вы понимали, во что упираетесь -- говорили бы за пропускную способность памяти или iopsы. С "пользовательской" терминологии вроде "задержки при построении отчётов". Вместо нормальной оцэнки потоков данных для этих отчётов. У вас просто нет в голове картины таймингов и понимания наличных ресурсов, которые на них влияют. Шансы, при таких вводных, что у вас за счёт реплики что-то случайно ускорится -- невелики. Шансы, что у вас там на самом деле что-то сделано крайне неоптимально, и можно это ускорить в разы (если не в сотни раз) безо всяких реплик -- 100%.

Техник- Автор вопроса
Ilya Anfimov
Да так, с мелких шэроховатостей. С того, что вы п...

Тогда ещё подскажите, что именно можно оптимизировать, если ПО, используещее БД коммерческое и в нем ничего не изменить, типа запросов и т.д. Оптимизировать саму БД? Это я к пониманию, что должен будет делать DBA, если его нанять.

Техник
Тогда ещё подскажите, что именно можно оптимизиров...

>используещее БД коммерческое и в нем ничего не изменить, типа запросов и т.д Мда. Совет нанять DBA был в предположэнии, что это таки вашэ ПО. В случае, если это не вашэ ПО -- вполне возможно во-первых, что разрабочики и так всё достаточно оптимизировали -- а что вы не понимаете, как оно работает и во что упирается -- так на это никто и не рассчитывал. Во-вторых -- шансы, что оно хотя бы заработает с горизонтальным машстабированием и без поддержки этого решэния со стороны разработчиков стремятся к нулю. В-третьих -- попытаться что-то сделать можно -- проанализировать запросы, определить, чем они занимаются, возможно, как-то им индэксы подсунуть -- но реально если у вас нет контроля за кодом -- то, опять жэ, шансы, что что-то хорошэе выйдет невелики. Самое логичное -- попытаться как-то попробовать вместе с разработчиками сформулировать вашы требования и добиться решэния от них, либо сменить разработчиков.

Техник
А где "Мда...." )

Случайно отправилось недописанное.

Техник
Тогда ещё подскажите, что именно можно оптимизиров...

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

Техник
Тогда ещё подскажите, что именно можно оптимизиров...

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

Техник
Тогда ещё подскажите, что именно можно оптимизиров...

Кстати, нагружэнный mysql и windows server вышэ средней мощности. Зачем? Почему?? Не, достоверно я не знаю, насколько у mysql всё плохо с виндоус -- но, что-то мне кажэтся, это сильно не основная их система.

Техник- Автор вопроса
Ilya Anfimov
Кстати, нагружэнный mysql и windows server вышэ ср...

Это ставилось пакетом, там глонасс система отслеживания датчиков транспорта. Честно говоря, это зоопарк достался в наследство, я к нему не притрагивался, ибо трогать это боялись все ) А тут прилетело, мол тормоза, ахтунг, надо что-то делать, вот и начали перебирать, что ж нам с ним делать ) Я предлагал давно на Linux перенести, но как-то все мимо ушло. По-моему даже сам софт есть под линукс. Сейчас просто рассматриваем варианты, и перенести на Linux не самый плохой из них, как и нанять кого-то, кто мог бы реально оптимизировать саму БД.

Техник
Это ставилось пакетом, там глонасс система отслежи...

Определить потребности! Реально оптимизировать чужую БД вполне можэт не выйти. Но чотко ответить -- нужно то-то (в т.ч. смена поставщика, если этот неспособен) -- должно получиться.

Техник
Это ставилось пакетом, там глонасс система отслежи...

>По-моему даже сам софт есть под линукс. Вот, кстати, если там есть (наверняка есть) понятие app-server (основной комплекс ПО, который принимает запросы от удалённых датчиков, пишэт всё, представляет какие-то интэрфейсы) -- то вот разнести его и сервер СУБД -- это прямо вот первая мысль, которая приходит в голову. Тожэ себе такое горизонтальное масштабирование, хе-хе. Она не всегда работает хорошо, но очень и очень часто -- да. Но, конечно, в рабочей системе нужэн тэстовый стэнд для начала, чтобы это всё опробовать.

Техник- Автор вопроса
Ilya Anfimov
>По-моему даже сам софт есть под линукс. Вот, кст...

Ну это-то понятно. Виртуалку уже разворачиваем.

Похожие вопросы

Обсуждают сегодня

Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Коллеги, приветствую! Появилась не совсем тривиальная задача реализовать в nginx редирект HTTPS —> HTTP. Да, именно так, а не наоборот. Мы разрабатываем embedded устройство,...
Никита
24
Карта сайта