Size: a a a

2020 November 20

Vr

Vuzopedia ru in MySQL
по деньгам в личке договоримся
источник

Vr

Vuzopedia ru in MySQL
если кто может помочь со сложной задачей - напишите в лс
источник

DE

Denis Efremov in MySQL
Vuzopedia ru
если кто может помочь со сложной задачей - напишите в лс
Структуру покажи
источник

Vr

Vuzopedia ru in MySQL
дк уже с тем кто может это сделать будем обсуждать. пока смысла нет палить что-то. сайт чето типа агрегатора, 185 таблиц, в одном запросе до 5 таблиц может участвовать
источник

DE

Denis Efremov in MySQL
Ну ищи
источник

Vr

Vuzopedia ru in MySQL
дк ищу, че и написал)
источник

DE

Denis Efremov in MySQL
Это вакансия что-ли?
источник

Vr

Vuzopedia ru in MySQL
это оплачиваемая консультация. сколько займет в часах сложно сказать, но я подумал, что чат по мускулу - это место, где я смогу найти специалиста, который за деньги сможет передать мне часть своего опыта и помочь)
источник

Vr

Vuzopedia ru in MySQL
в личной беседе, конкретно для этого случая. последние 5 дней сижу пытаюсь читать все подряд по оптимизации - пробовать. но до нужных результатов, которые с были с кэшем запросов в 5.7 добить не могу(
источник

DE

Denis Efremov in MySQL
Vuzopedia ru
дк уже с тем кто может это сделать будем обсуждать. пока смысла нет палить что-то. сайт чето типа агрегатора, 185 таблиц, в одном запросе до 5 таблиц может участвовать
Ну в личку скинь
источник

DE

Denis Efremov in MySQL
Ты понимаешь, что чтобы оценить банально хватит ли мне скилла решить задачу, нужно увидеть с чем предстоит работать?
источник

Vr

Vuzopedia ru in MySQL
да, пишу в личку
источник

VE

Vladimir Eliseev in MySQL
Ребят, подскажите пожалуйста.
Есть таблица t1, в ней есть поле num.

Мне нужно:
1. найти максимальный num в этом году.
select max(num) as maximus form t1 where year = '2020';

2. вставить новую запись с новым(инкрементированным) номером.
insert .... into t1 values(maximus+1);

Но при этом в условиях согласованного чтения это все не подходит. Ибо одновременно могут другие транзакции читать эти записи.
И вставить, соответственно, запись с одним и тем же номером.

Я пробовал:
select max(num) as maximus form t1 where year = '2020' for update;
Но это бессмысленно, ибо я блокирую эти записи на изменение для других транзакций.
А мне нужно их блокировать на чтение от других транзакций.
Подскажите плз, как это лучше сделать?
источник

VE

Vladimir Eliseev in MySQL
select max(num) as maximus form t1 where year = '2020' LOCK IN SHARE MODE; тоже не подходит... )
источник

ВТ

Виктор Ткаченко... in MySQL
Vladimir Eliseev
Ребят, подскажите пожалуйста.
Есть таблица t1, в ней есть поле num.

Мне нужно:
1. найти максимальный num в этом году.
select max(num) as maximus form t1 where year = '2020';

2. вставить новую запись с новым(инкрементированным) номером.
insert .... into t1 values(maximus+1);

Но при этом в условиях согласованного чтения это все не подходит. Ибо одновременно могут другие транзакции читать эти записи.
И вставить, соответственно, запись с одним и тем же номером.

Я пробовал:
select max(num) as maximus form t1 where year = '2020' for update;
Но это бессмысленно, ибо я блокирую эти записи на изменение для других транзакций.
А мне нужно их блокировать на чтение от других транзакций.
Подскажите плз, как это лучше сделать?
И кейс бессмысленный, что даст запрет на чтение, но разрешение на запись?
источник

ВТ

Виктор Ткаченко... in MySQL
Можно же лочить не весь набор, а только нужную запись, если на то пошло
источник

VE

Vladimir Eliseev in MySQL
Виктор Ткаченко
И кейс бессмысленный, что даст запрет на чтение, но разрешение на запись?
Лочить на чтение надо для того, чтобы пока i-ая транзакция прочла, добавила новую запись, другие транзакции её подождали, когда попытаются читать тот же набор данных.
Иначе, несколько транзакий вставят строки с одним и тем же номером
источник

ВТ

Виктор Ткаченко... in MySQL
Vladimir Eliseev
Лочить на чтение надо для того, чтобы пока i-ая транзакция прочла, добавила новую запись, другие транзакции её подождали, когда попытаются читать тот же набор данных.
Иначе, несколько транзакий вставят строки с одним и тем же номером
Завести отдельную таблицу, где этот самый max(num), year  будет представляться одной строкой. И дальше можно использовать уже известные способы блокировки
источник

ВТ

Виктор Ткаченко... in MySQL
так понимаю num в "основной" таблице не подлежит изменению (существующих данных) иначе все будет бессмысленно
источник

AP

Andrey Paliy in MySQL
Ребят подскажите по отставанию репликации.. Мускул 5.7, Тип логов поставил Mixed, ранее был ROW. Изменение результатов не дало, как росло отставание, так и растёт. Самое интересное, бинлоги приходят с мастера и Exec_Master_Log_Pos тоже растет, но видимо просто медленно все переваривает. С сетью и с записью на диск все ок. Т.е. ресурсы слейва не используются почти совсем, запись на диск выше 1мб/с не поднимается. Машинки с мастером примерно одинаковые. Что еще можно глянуть?
источник