Size: a a a

2020 April 23

E

Eugene in ru_mysql
можно
источник

E

Eugene in ru_mysql
сперва
select max(date), column2 from t group by column2
источник

E

Eugene in ru_mysql
потом сдойжнится к этому запросу
источник

E

Eugene in ru_mysql
select * from (
select max(date) as max_date, column2 from t group by column2
) as t1
left join t t2 ON t2.date = t1.max_date AND t2.column2 = t1.column2
источник

K

Ki in ru_mysql
А может кто объяснить, что произойдет если в 5.7 по дефолту стоит настройка хранить временные таблицы в InnoDB (internal_tmp_disk_storage_engine,InnoDB)
Т.е. происходит хранение в файле ibtmp1
И есть настройка для размера этого файла, где хранятся таблицы (innodb_temp_data_file_path ibtmp1:12M:autoextend:max:20G)
А что происходит, когда размер этого файла уперся в указанный маскимум 20G, а MySQL нужно еще, он будет писать в оперативную память?
источник

А

Александр in ru_mysql
Иван
всем привет! есть табличка:
2020-01-01 AAA 123
2020-01-01 CCC 123
2020-01-02 BBB 123
2020-01-03 CCC 345
можно ли одним простым запросом выбрать все записи с группировкой по второй колонке, но чтобы в выборку попали строки с максимальной датой?
т.е. в данной выборке не будет записи CCC от 01.01. если делать с простой группировкой GROUP BY, то третье поле не синхронизируется с максимальной датой
WITH d AS (
 SELECT '2020-01-01' date, 'AAA' col, 123 val
 UNION ALL SELECT '2020-01-01' date, 'CCC' col, 123 val
 UNION ALL SELECT '2020-01-02' date, 'BBB' col, 123 val
 UNION ALL SELECT '2020-01-03' date, 'CCC' col, 345 val
)
, t AS (
 SELECT date, col, val
 , ROW_NUMBER() OVER (PARTITION BY col ORDER BY date DESC) rn
 FROM d
)
SELECT * FROM t WHERE rn = 1
источник

D

DaySandBox in ru_mysql
Message from Наташа deleted. Reason: @-link to group (?)
источник
2020 April 24

K

Ki in ru_mysql
Vlad
лучше смотреть глазами и смотреть какие запросы и как выполняются.
А вы были правы! =)
Я действительно нашел запрос, который все убивал (все было просто...)
В запросе был объявление переменно @a:=if( и в новой 5.7 версии запрос с подобным внутри не отрабатывал, висел в системе и отжирал память.
источник

A

Arseni in ru_mysql
источник

V

Vlad in ru_mysql
Ki
А вы были правы! =)
Я действительно нашел запрос, который все убивал (все было просто...)
В запросе был объявление переменно @a:=if( и в новой 5.7 версии запрос с подобным внутри не отрабатывал, висел в системе и отжирал память.
спасибо, что написали в чем дело было!
источник

ПД

Павлов Дмитрий in ru_mysql
подскажите, пожалуйста, как организовать заполнение базы заказов. проблема в том, что есть лимит на общую сумму и одновременно могут несколько человек заполнять каждый свой лист заказов. и вот перед тем как внести сформированый лист заказа в общую базу, нужно использовать транзакции и проверять не превысим ли мы общий лимит добавив свой заказ. это я понял.
а вот как организовать редактирование уже существующего заказа?
источник

ПД

Павлов Дмитрий in ru_mysql
ребят, серьезно опыта не хватает
думаю использовать для формирования и редактирования листа заказа временную таблицу, но не уверен, что это правильный путь.
если напрямую каждую позицию вносить в базу, то слишком много проверок на лимит будет
источник

🇻

🇻 🇱 🇦 🇩 in ru_mysql
Павлов Дмитрий
подскажите, пожалуйста, как организовать заполнение базы заказов. проблема в том, что есть лимит на общую сумму и одновременно могут несколько человек заполнять каждый свой лист заказов. и вот перед тем как внести сформированый лист заказа в общую базу, нужно использовать транзакции и проверять не превысим ли мы общий лимит добавив свой заказ. это я понял.
а вот как организовать редактирование уже существующего заказа?
может тригером сделать
источник

🇻

🇻 🇱 🇦 🇩 in ru_mysql
на insert и  update
типо если сумма заказов больше запрос в бд не пройдет
источник

A

Alexander in ru_mysql
ну да, ошибку инсёрта обрабатывать на фронтэнде, там же делать редактирование, достаточно одной транзакции, ничего дополнительно не надо...
источник

ПД

Павлов Дмитрий in ru_mysql
я не пойму, сразу каждую позицию в базу вносить или сначала лист заказа сформировать, потом общую сумму посчитать и её уже на лимит проверять
если каждую позицию отдельно, то боюсь, что нагрузка на сервер большая будет, если несколько человек одновременно будут заказы вбивать
источник

A

Alexander in ru_mysql
Если заказы не формируются автоматически, то вряд-ли Вы сможете создать существенную нагрузку.
источник

ПД

Павлов Дмитрий in ru_mysql
Alexander
Если заказы не формируются автоматически, то вряд-ли Вы сможете создать существенную нагрузку.
ну, перед внесением очередной позиции в базу, нужно просуммировать все записи... а если их под сотню тысяч?
несколькими пользователями будут вноситься довольно быстро
источник

A

Alexander in ru_mysql
зачем все записи просматривать, у Вас же ограничение по дням... сумма по 100000 это не большая нагрузка.
источник

A

Alexander in ru_mysql
ну и можно сумму сразу считать на фронтэнде, и проверять в первом запросе в транзакции и делать эксепшен.
источник