@mysql_ru

Страница 106 из 142
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
update table1 set state is null where id=123 and state<>0
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'is null where mark<>0' at line 1

спасибо всем)

Андрюха (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

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

Maxim
13.12.2017
17:57:22
спасибо1 попробую разобраться
тебе нужно сделать select (max.id_from_table_one) и сгруппировать по joinTable.relation_from_table_one_id

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
т.е там аналог 8ки будет? по сути одна и та же база же сейчас
"аналог" 8ки — это 10.2, которая уже вышла. там есть cte и window functions

но там текстовый 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
понял, обязательно попробуем. Спасибо!

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
Я пока в дороге, чуть попозже давай покажу,

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 оператор

это разные вещи

Страница 106 из 142