Size: a a a

2020 July 14

S

Sasha S. in MySQL
Denis Efremov
это внешний ид стороннего сервиса по которому они заходят

Вы вдумайтесь
да-да?
источник

IZ

Ilia Zviagin in MySQL
Sasha S.
Господа, сложный вопрос:

я хочу как-то по возможности максимально сделать запрос к БД лаконичным, но в текущей задачке даже отдельные части не особо представляю как бы сжать, что бы не делать кучу примитивных запросов :D

в общем суть... в первую табличку надо закинуть логин пользователя только если он там не существует и получить его ИД который автоматически инкрементируется. Во вторую табличку используя этот ИД уже закинуть что-то ещё, а и ещё во второй табличке - если записи уже существуют - обновить их, если не существуют - добавить. Вот...и как бы это сделать лаконичнее?
Лаконичность запроса не даёт ничего, не нужно к ней стремиться.
источник

IZ

Ilia Zviagin in MySQL
Sasha S.
Господа, сложный вопрос:

я хочу как-то по возможности максимально сделать запрос к БД лаконичным, но в текущей задачке даже отдельные части не особо представляю как бы сжать, что бы не делать кучу примитивных запросов :D

в общем суть... в первую табличку надо закинуть логин пользователя только если он там не существует и получить его ИД который автоматически инкрементируется. Во вторую табличку используя этот ИД уже закинуть что-то ещё, а и ещё во второй табличке - если записи уже существуют - обновить их, если не существуют - добавить. Вот...и как бы это сделать лаконичнее?
Это как минимум два запроса...
источник

S

Sasha S. in MySQL
Ilia Zviagin
Лаконичность запроса не даёт ничего, не нужно к ней стремиться.
Ну, может быть.
источник

IZ

Ilia Zviagin in MySQL
Sasha S.
Ну, может быть.
100%
источник

IZ

Ilia Zviagin in MySQL
Хотя нет же , чем лаконичнее запрос, тем проще и быстрее он передается на сервер !
источник

S

Sasha S. in MySQL
Ну да, отклик быстрее, а ещё надёжность, меньше мест в которых что-то гипотетически может пойти не так
источник

S

Sasha S. in MySQL
Не то что бы критично, но...
источник

V

Vova in MySQL
Ilia Zviagin
Хотя нет же , чем лаконичнее запрос, тем проще и быстрее он передается на сервер !
+++ в slow_query_log все длинные запросы
источник

mm

mudragel mudragel in MySQL
Столкнулся с проблемой, что при создании индекса на мастере (CREATE INDEX status ON db.post (`status`) USING BTREE;) при включенной row-based репликации возникает лаг на слэйве около 15 минут

можно как-то улучшить ситуацию?
под нагрузкой БД репликация не лагает (Server version: 5.7.30-33-log Percona Server)
источник

DE

Denis Efremov in MySQL
mudragel mudragel
Столкнулся с проблемой, что при создании индекса на мастере (CREATE INDEX status ON db.post (`status`) USING BTREE;) при включенной row-based репликации возникает лаг на слэйве около 15 минут

можно как-то улучшить ситуацию?
под нагрузкой БД репликация не лагает (Server version: 5.7.30-33-log Percona Server)
Название индекса обычно не совпадает со столбцом
источник

DE

Denis Efremov in MySQL
Че за тип столбца и зачем тебе там индекс?
источник
2020 July 15

mm

mudragel mudragel in MySQL
tinyint(3)
источник

mm

mudragel mudragel in MySQL
хочу ускорить запрос по этому полю
источник

DE

Denis Efremov in MySQL
А это не форейн точно?
источник

mm

mudragel mudragel in MySQL
точно, в этой таблице нет форейнов
источник

DE

Denis Efremov in MySQL
Индексы не всегда ускоряют так-то
источник

mm

mudragel mudragel in MySQL
по-идее индекс же онлайн создается на мастере, а слэйв почему-то блокирует репликацию пока не создаст индекс
источник

DE

Denis Efremov in MySQL
хз че у тебя там. объяснения не совсем передают картину
источник

mm

mudragel mudragel in MySQL
может есть best practices создания индексов при мастер-слэйв репликации?
источник