Коллеги, подскажите, корректно ли в стартапе веб-сервиса (в будущем рассчитанного

на много пользователей) использовать MySQL? Знакомый говорит что у этой СУБД большая проблема с многопоточностью.

Объясняется это так: при выполнении транзакции MySQL блочит ВСЮ таблицу, в других же СУБД, том же Postgre, таблица не блочится, блочится только запись к которой обращается транзакция. Так ли это, кто разбирается, прошу немного пролить свет на этот вопрос )

4 ответов

18 просмотров

Ну например весь бекенд Яндекс Еды и Такси работает на мускуле. Не знаю, как сейчас, но раньше это точно было так. Что касается блокировок-то они очень разные бывают. Я лично не юзал мускуль, но судя по доке, дефолтный уровень-как раз row-level locking. Транзакция скорее всего выставляет на таблицу разделяемую блокировку (чтобы во время работы транзации никто не мог таблицу дропнуть целиком или поменять), но транзакциям, которые совместно меняют строки в таблице, это мешать не должно.

и да и нет у mysql несколько вариантов движков для таблиц старый myisam который как раз блочит всю таблицу на транзакциях и условно новый (почти 20 лет не возраст) innodb (уже дефолт в последних версиях) который как раз row-level блокировки

Вот хорошая статья. How Quora scaled MySQL to 100k+ Queries Per Second

это мифы из эпохи myisam. c innodb таблицами mysql лочит обычно только то что нужно, но есть нюанс. если предикат апдейта не индексирован и идет фуллскан, фуллскан начнет лочить все записи таблицы. т.е. надо следить что бы модифицирующие запросы по идексу шли

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Ребят, а двух-факторку для плагина Users и для бэкенда октября кто-то прикручивал? Поделитесь опытом
Constantine Anikin
4
Карта сайта