
Artur
13.12.2017
11:53:41
Вас всех в гугле забанили походу (

Sergey
13.12.2017
11:53:52
ща попробую

Artur
13.12.2017
11:54:27
https://www.w3schools.com/sql/sql_update.asp

Google

Sergey
13.12.2017
12:33:10
спасибо всем)

Андрюха (Ren)
13.12.2017
13:01:54
не за что

Сергей
13.12.2017
13:26:08

Andrey
13.12.2017
16:43:10
У меня вопрос созрел. Я сделал leftjoin. Во таблице к первой соотносится несколько строк. Как мне из второй таблицы выбрть максимальное в колонке?
Table1
id,name
Table2
id,id_table1,chtoto
Как выбрать из второй таблицы только 1 строку с максимальным значением в chtoto

Ad.x ??
13.12.2017
17:01:13

Andrey
13.12.2017
17:05:50
спасибо1 попробую разобраться

Maxim
13.12.2017
17:57:22

Andrey
13.12.2017
18:04:08
пока не понятно, я щас на русских гляну :)
я просто чот тупанул, не знал как загуглить. сейчас задача проще)

Ринат
13.12.2017
19:14:59
mysql 8 ещё не релизнулся?

Alexey
13.12.2017
19:41:12
релиз кандидатнулся

Google

Ринат
13.12.2017
19:42:27
а релиз по планам когда намечается?
вообще есть смысл с 5.7 на 8.0 например переезжать, даже если не использовать новые фичи, а с тем что он будет быстрее за счёт внутренней потимизации?

Anton
13.12.2017
19:44:11
Как показывает практика, без использщования фичей версии с четвёртой идёт только деградация))))

Alexey
13.12.2017
19:44:24
если не использовать новые фичи, он будет на 5-10% медленнее, если смотреть на одно соединение
но масштабируемость на многих соединениях будет лучше, особенно на записи, на high end железе и т. д.

Ринат
13.12.2017
19:45:17
тоесть как с условным пхп 5.6 - на 7.0 не прокатит с приростом под 40 процентов по умолчанию)

Anton
13.12.2017
19:45:35
Ринат, абсолютно нет

Ринат
13.12.2017
19:46:40
понял)

Anton
13.12.2017
19:46:40
@alexey_kopytov Кстати про деградацию. Версии с 5,6, если не ошибаюсь, начали сильно просаживаться запросы с большими данными для агрегации. В 5,7 сели ещё сильнее. Есть ли универсальные советы по исправлению этого дела, кроме "перепишите отчёты руками, а не тем, чем их писали ранее"??

Ринат
13.12.2017
19:47:15
а кстати с maridb как обстановка?
т.е там аналог 8ки будет? по сути одна и та же база же сейчас

Alexey
13.12.2017
19:48:14
но там текстовый json и .frm :)
и так себе gis. в обшем, разъезжаются они с mysql

Ринат
13.12.2017
19:49:51
т.е если узаешь марию-то лучше там и оставатьс?

Alexey
13.12.2017
19:50:42
нет. надо внимательно изучить отличия и решить, без чего совсем плохо
перкона где-то делала неплохое сравнение

Ринат
13.12.2017
19:51:03
ну я и говорил-без погружения не прокатит

Alexey
13.12.2017
19:51:33
https://www.percona.com/blog/2017/11/02/mysql-vs-mariadb-reality-check/

Google

Alexey
13.12.2017
19:52:46
это сравнение написано перебежчиком из mariadb в percona. но он очень старался быть объективным. и у него почти получилось

Anton
13.12.2017
19:54:02
@alexey_kopytov планы абсолютно одинаковые, данные одинаковые. Отчётов с деградацией десятки, т.е. проблема массовая. Понятное дело, что вопрос ещё и в убогих запросах, но всё-таки. Возьмём пример: интернет-магазин хочет построить отчёт по покупкам с группировкой по пользователю и статусу (например). Хороший отчёт: сделали группировку по таблице с заказами, потом приджойнили справочники на результате. Плохой отчёт: приджойнили справочники к сырым данным ( вывелифио пользователя, пол и пр.) а потом сгруппировали. Хорошие работают примерно одинаково, плохие раза в 1,5-2 медленнее на 5.7 по сравнению с 5.6. Причина - непонятна. По-тихоньку перепиливаю запросы, но их много и моя скорбь от этого очень велика.

Alexey
13.12.2017
19:54:33
а можно ссылку на десятки отчётов?

Anton
13.12.2017
19:55:46
Боюсь что нет, поэтому и написал небольшой примерчик, и именно поэтому спросил исключительно в общих чертах изначально.
Не все мы работаем в интернет-магазинах))))
но исходные данные точны. Я держал слейвы на разных версиях от одного мастера, т.е. данные в копейку. Железки в копейку, планы выполнения - тоже
возможно, есть некий конфиг, который определяетт максимальный размер допустимой таблицы для сортировки/группировки в памяти, о котором я не знаю.

Alexey
13.12.2017
20:04:44
ну, без конкретики я вряд ли чего полезного скажу
единственное, что приходит на ум в связи группировкой — в 5.7 переехали на innodb для временных таблиц по умолчанию
он в целом должно быть не хуже. но в особо тяжёлых случаях может выстрелить в ногу

Anton
13.12.2017
20:06:29
хм, а вот не пробовал, надо попробовать, спасибо!
есть же вроде параметр такой, где-то находил

Alexey
13.12.2017
20:06:47
попробуйте установить internal_tmp_disk_storage=myisam. если поможет, значит оно. и дальше нужно innodb оптимизировать

Anton
13.12.2017
20:07:10
понял, обязательно попробуем. Спасибо!

Andrey
14.12.2017
05:11:03

Anton
14.12.2017
06:05:17
Они у тебя доступны
Type=all в таких ситуациях обычно бывает на очень маленьких таблицах

Andrey
14.12.2017
06:06:22
так я их юзаю в джйонах и where

Anton
14.12.2017
06:06:32
Или при косяке

Google

Andrey
14.12.2017
06:06:36
вот я хочу ее допилить немного запрос

Anton
14.12.2017
06:06:53
Это не маленькая

Andrey
14.12.2017
06:06:59
поэтому просил пример выше

Anton
14.12.2017
06:07:40
Так там планы были хорошие
А почему у тебя он плохой - пока непонятно.
Сделай analyze table для начала
А, это не тот запрос, что по телефону?
Ты же мне вроде писал
Если там не сделал - вот тебе фуллскан таблицы и есть

Andrey
14.12.2017
06:09:50
я пока просто номер телефона вывожу в одном из столбиков
по этой колонке поиска нет
чисто вывод

Anton
14.12.2017
06:11:29
А поиск по чем?

Andrey
14.12.2017
06:12:06
поиск под ругим таблилицам, explain показывает что там норм поиск
то есть я скрестил 50 таблиц, сделал там поиск. в одной колонке есть клиент id, я потом по этому клиент id еще еще в одной таблице номер телефона и все выводится

Anton
14.12.2017
06:17:09
Тогда тебе помогут force index и straigh join

Andrey
14.12.2017
06:17:49
записи джойна без разницы в каком порядке?

Google

Anton
14.12.2017
06:19:42
Да

Andrey
14.12.2017
06:20:04
STRAIGHT_JOIN с ним вместо 80к поиск по 600к)
чот он на пользу не идет)

Anton
14.12.2017
06:20:22
Но если сервак не догнал сам о порядке ему надо помочь.
Значит не там

Andrey
14.12.2017
06:21:26
я даже убрал ордер-бай из запроса, это не повлияло

Anton
14.12.2017
06:21:33
Я пока в дороге, чуть попозже давай покажу,

Andrey
14.12.2017
06:22:03

Anton
14.12.2017
06:23:15
Если хочешь сам задать порядок - поставь старайтесь джойн сразу после селекте и перепиши джойны по порядку
*страйт джойн

Andrey
14.12.2017
06:24:46
знать бы порядок, они вроде и так в нужном порядке стоят
да я думаб деле не в страйтджон
думаю запрос кривой, ты там пример выше напиши) а я свой запрос перепилю)
—
ALTER TABLE ClientContact
ADD PRIMARY KEY (id),
ADD KEY createPerson_id (createPerson_id),
ADD KEY modifyPerson_id (modifyPerson_id),
ADD KEY client_id (client_id),
ADD KEY contactType_id (contactType_id);
это значит индексы висят?
или надо create index..?

Anton
14.12.2017
06:27:13
Да, дай запрос

Andrey
14.12.2017
10:38:50
оказывается replace можно в select воткнуть! это вобще законно?
или лучше потом на стороне клиента менять получаемый ответ?

lost
14.12.2017
10:39:14
есть replace функция, а есть replace оператор
это разные вещи