@dba_ru

Страница 350 из 718
Borys
19.12.2017
17:04:34
@acromegale .. вы могли бы привести пример? пробую читать https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_found-rows https://habrahabr.ru/post/64655/ и не нахожу такого применения. видимо нужно более внимательно читать

lost
19.12.2017
17:05:51
Функа возвращает результат выполнения, все просто

Там и примеры есть в мануале

Google
Edward
19.12.2017
17:18:29
тоесть один запрос может вернуть данные из двух разных таблиц?

Al
19.12.2017
17:50:35
Зто пишется запрос, который всё возвращает
Ты напиши пару развернутых ответов. И бум их просто копипастить. Или бота приделаем и пусть он по команде выдает

Ilia
19.12.2017
20:04:44
тоесть один запрос может вернуть данные из двух разных таблиц?
Да, хоть из 20 таблиц... Но тете придется изучить язык SQL

Приносящий
20.12.2017
00:34:04
/help

/stat@combot

Combot
20.12.2017
00:34:18
combot.org/chat/-1001045152752

freecod
20.12.2017
01:24:07
А есть какие-то способы сохранить построенную группировку на уровне mysql для последующей выборки из нее? Есть таблица с парой десятков миллионов данных, их нужно сгруппировать и дальше двигаясь чанками обработать (т.к. в память все даже после группировки не влезет). Как я понимаю группировка будет вызываться на каждой выборке чанка (limit - offset)

Виктор
20.12.2017
06:25:25
временная таблица?

И зачем все в память собирать? Делаем запрос и построчно читаем. Если результат запроса большой - просто все в темп свалится

Артём
20.12.2017
07:44:52
Приветствую! Дайте пожалуйста совет. Необходимо изменить структуру таблицы postgresql96 (горячей, данные постоянно обновляются в этой таблице), добавить новый столбец. Боюсь если это делать, то придятся отключать пользователей и производить изменения Как это сделать лучше, что бы минимизировать влияние на пользователей?

Vladislav
20.12.2017
07:47:00
А альтер лочит вроде таблицы. Если процесс долгий то можно через подмену таблиц.

Google
Vladislav
20.12.2017
07:47:14
?

Alex
20.12.2017
07:47:40
Добавление с null

Оно быстро пройдет

Этож не мускуль

Vladislav
20.12.2017
07:48:11
Откуда понабежали?

А, из девопса

Артём
20.12.2017
07:49:42
А альтер лочит вроде таблицы. Если процесс долгий то можно через подмену таблиц.
т.е. создать новую таблицу, с необходимыми изменениями, заполнить её из исходной данными, и потом сделать подмену?

А, из девопса
я да, из девопса прибежал )

Артём
20.12.2017
07:50:59
Добавить столбец заполненный null
не создавая новой таблицы?

Артём
20.12.2017
07:51:50
благодарю

lost
20.12.2017
08:11:54
Этож не мускуль
у мускуле добавление колонки с null тоже довольно быстро еще с 5.6

так что не надо тут...

Anton
20.12.2017
08:12:34
Ну да... На TokuDB только если

Alex
20.12.2017
08:14:31
или даже более ранюю версию

так что стереотипы остались :)

Google
lost
20.12.2017
08:15:48
c 5.6 подвезли online ddl, кратковременная блокировка будет только в самом конце на применении изменений, но это все же лучше чем полный мейнтенс на время альтера

Alexey
20.12.2017
08:18:21
ну, надо сказать, что в mysql добавление невиртуальной колонки всё-таки перестраивает таблицу, хоть и без блокировок. а в postgresql добавление nullable голонки это in-place, metadata-only операции

что не отменяет того факта, что все эти "стереотипы" 10-летней и большей давности несколько доставляют

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

Anton
20.12.2017
08:19:44
Ну, в мускуле есть разные движки. Для того же току это metadata-only операция. В экспериментально добавленном роксе вроде тоже, но это не точно))))

Alex
20.12.2017
08:20:24
но вообще надо да, почитать чо там нового завезли :)

Anton
20.12.2017
08:20:48
5.6 же недавно вышла )
ну да, года 3 как))))

Alexey
20.12.2017
08:20:48
да отож. 4 года не срок, кто понял жизнь, тот не спешит

Anton
20.12.2017
08:22:05
Ещё бы MySQL научился эти onlyne-ddl реплицировать так же в фоне, цены бы ему не было

а то толку получается мало - вроде как и ничего не блокировалось, но слейва ушли в дофигищща отставания по реплике

Alexey
20.12.2017
08:23:24
для этого завезли gh-ost и pt-osc

Anton
20.12.2017
08:24:52
ну, тяжкие они... Не проще ли при добавлении например колонки на слейвах сначала добавить колонку в таких случаях, а потом на мастере и скипнуть ошибку "такая дрянь есть" на слейвах?

Anton
20.12.2017
08:27:41
да ты наркоман
не, тока бухаю.

Alex
20.12.2017
08:28:00
вообщем мускуль это больно

Alex
20.12.2017
08:28:34
никаких блокировок
а как ты себе представляешь это ? пока не изменился слейв на мастере нельзя трогать таблицу пока она не обновиться.

соответсвенно на все время обновлений обоих таблиц - хер

Google
Alex
20.12.2017
08:29:13
не ?

Anton
20.12.2017
08:29:29
а как ты себе представляешь это ? пока не изменился слейв на мастере нельзя трогать таблицу пока она не обновиться.
кто сказал? Ты отстал от жизни)))) На слейве может быть число колонок большее, чем у мастера

Admin
ERROR: S client not available

Alex
20.12.2017
08:29:42
это при какой репликации ?

lost
20.12.2017
08:29:56
при любой

Alex
20.12.2017
08:29:59
О_О

нафиг так жить

не не, я лучше с постгресом буду жить дальше

Anton
20.12.2017
08:30:50
Слон слишком умным себя считает, а это плохо... Ну да ладно, ща в вечный холивар скатимся. Мне например слон не нравится совсем

Alex
20.12.2017
08:31:09
слишком умным это где ? :)

Anton
20.12.2017
08:32:11
Форс индексы никак не поставишь, например. А я хочу! Я вообще люблю отстреливать себе конечности

Alexey
20.12.2017
08:32:28
не не, я лучше с постгресом буду жить дальше
в постгресе специально для этого завезли логическую репликацию. чтобы разное число колонок на слейве и мастере, rolling schema updates, cross-version upgrades и вот это всё, с чем сталкиваются люди, которые базульки не только на локалхосте запускают

Alex
20.12.2017
08:32:45
я про логическую репликацию в курсе

поэтому и уточнял

Alexey
20.12.2017
08:33:01
воот, ну её не зря придумали

Anton
20.12.2017
08:33:21
Ну, в мускуле то ж самое)))) Там целая тьма вариантов иметь разное количество колонок и разные типы данных в них.

Alexey
20.12.2017
08:33:36
правда ей до мусклвской репликации пока как до китая раком. но лиха беда начало

Alex
20.12.2017
08:33:40
в мускуле есть же разные репликации

Google
Anton
20.12.2017
08:33:46
не завезли, а нагло спиздили из pg-logical
Это опенсорс. Ничего не крадётся, всё просто используется

в мускуле есть же разные репликации
На гдидах и позициях только. Различен лишь формат бинлога. Причём различен динамически, можнно на лету менять.

Alex
20.12.2017
08:35:05
ок

Alexey
20.12.2017
08:35:19
не завезли, а нагло спиздили из pg-logical
вот тут рассказывают, чем встроенная в postgresql 10 отличается от pglogical. невесёлое такое чтиво: https://blog.2ndquadrant.com/pglogical-logical-replication-postgresql-10/

Ilia
20.12.2017
08:35:36
А есть какие-то способы сохранить построенную группировку на уровне mysql для последующей выборки из нее? Есть таблица с парой десятков миллионов данных, их нужно сгруппировать и дальше двигаясь чанками обработать (т.к. в память все даже после группировки не влезет). Как я понимаю группировка будет вызываться на каждой выборке чанка (limit - offset)
во-первых ,тебе надо понять, что никакие данные запроса в память не кладутся целиком, запрос просто выполняется, и результаты передаются клиенту. Это может быт очень длительный процесс. 2) LIMIT/OFFSET — да, не решение. Тут ты прав. 3) То, что тебе нужно — это простой курсор. Это значит, ПРОСТО ВЫПОЛНИТЬ ЗАПРОС (один раз) и выбирать из него данные. Далее, есть два варианта технического оформления. 1) клиентский курсор — просто выполнить запрос , выбирать данные и обрабатывать построчно. Соединение с БД при этом будет занято на должное время выполнения запроса. Разрывать его нельзя. 2) Так называемый серверный курсор, или просто курсор — это то, что описано тут https://dev.mysql.com/doc/refman/5.7/en/cursors.html как там с закрытием соединения, не знаю, наверняка, нельзя, но перемежать FETCHи из курсора с другими запросами вроде бы можно.

Приветствую! Дайте пожалуйста совет. Необходимо изменить структуру таблицы postgresql96 (горячей, данные постоянно обновляются в этой таблице), добавить новый столбец. Боюсь если это делать, то придятся отключать пользователей и производить изменения Как это сделать лучше, что бы минимизировать влияние на пользователей?
ПРосто дать alter table add column, в какой-то момент таблица заблокируется на не очень большое время, потом разблокируется. Новые колонки лучше делать NULLABLE, иначе процесс добавления может быть очень долгим, так как все данные будут копироваться. Можно и пользователей отключить, или делать это ночью/ вдругое нерабочее время

5.6 же недавно вышла )
Да, ещё 10 лет не прошло...

Страница 350 из 718