
Ruslan
18.01.2018
14:23:38
нужна помощь
| products | CREATE TABLE `products` (
`id_product` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`id_catal` int(11) DEFAULT NULL,
PRIMARY KEY (`id_product`),
KEY `fk_catalog2` (`id_catal`),
CONSTRAINT `fk_catalog2` FOREIGN KEY (`id_catal`) REFERENCES `catalogs` (`id_catalogs`) ON DELETE SET NULL ON UPDATE SET NULL,
CONSTRAINT `fk_catalog` FOREIGN KEY (`id_catal`) REFERENCES `catalogs` (`id_catalogs`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_catalog1` FOREIGN KEY (`id_catal`) REFERENCES `catalogs` (`id_catalogs`)
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=latin1 |
я правильно понимаю, что у меня внешний ключ табл. products связан через foreign key c colomn catalogs.id_catalogs
что вообще означает KEY

Google

Alexey
18.01.2018
15:43:59

Anton
18.01.2018
15:44:29
Воркбенч ещё жив?)))))
спасибо, сейчас полистаю.

Alexey
18.01.2018
15:45:49
да он ещё нас переживёт

Anton
18.01.2018
15:47:07
Не, не сложились у меня с ним отношения. Прямо с первого запуска на компе у одного из сотрудников не сложились... Дальше была выдана деректива это не подпускать к продакшну))))
https://www.devart.com/dbforge/mysql/schemacompare/features.html
А по теме - вот есть аналог такой же, если кому интересно)))) Тоже делает дифф и создаёт скрипт синхрона

Alexey
18.01.2018
15:49:42
нет, я сам никогда не пользовал, но в курсе, что оно падучее. но вот постгрес сообщество почему-то считает его чуть ли ни единственным преимуществом mysql ?
видимо к ним часто приходят юзеры с вопросом "а где взять workbench под постгрес?"

Anton
18.01.2018
15:50:35
падучее - ещё куда не шло. Эта сволочь при соединении считывает метаданные по каждому объекту отдельным запросом. В итоге я от показаний заббикса по QPS чуть не поседел за минуту.

Alexey
18.01.2018
15:51:43
ну то такое

Andrey
18.01.2018
15:51:54
А мониторинг мускула в заббиксе все также через костыли настраивается? Или лучше стало?

Anton
18.01.2018
15:52:19
Если честно - не скажу, у нас специальные человечки это всё настраивали.

Andrey
18.01.2018
15:52:36
понял

Google

Alexey
18.01.2018
15:55:59
вот, нашёл этот дивный тредик: http://www.postgresql-archive.org/How-to-convince-people-to-choose-PostgreSQL-over-MySQL-td5965930.html

Иван
18.01.2018
15:56:28

Anton
18.01.2018
16:00:11

Alexey
18.01.2018
16:00:36
я уже два года говорю, что мне это всё секту напоминает
вот серьёзно, есть ещё примеры технических сообществ, где на сложных щщах вот такие темы обсуждают?

Anton
18.01.2018
16:01:43
Ну, это как веганы - мы решили, что это лучше, значит мы должны убедить всех))))

Alexey
18.01.2018
16:02:49
"отлично себя чувствуем"

Andrey
18.01.2018
16:03:12

Иван
18.01.2018
16:03:57
да две. заббикс для мониторинга а графану для визуализации

Anton
18.01.2018
16:04:36
Заббикс ещё и АПИ имеет. Что вообще крутяк?
но за PMM будущее, если ен забросят

Andrey
18.01.2018
16:05:20
PMM на том же хосте где и сервер должен крутиться?

Alexey
18.01.2018
16:06:47
если я правильно помню, там только маленький агент (prometheus exporter?) должен быть на том же хосте
всё остальное (сам prometheus + grafana) могут быть где угодно

Andrey
18.01.2018
16:07:31
Супер. Спасибо за информацию.

Иван
18.01.2018
16:09:28
http://play.grafana-zabbix.org/

Anton
18.01.2018
16:11:11
Это что ещё за котопёс?))))

Иван
18.01.2018
16:12:10
плагин для графаны высасывает из заббикса через api заббикса

Magic
18.01.2018
22:30:54
Графану люто плюсую

Google

Сергей
19.01.2018
10:59:11
ребят такой вопрос, не смог нагуглить. есть существующая таблица без primary key, в ней есть колонка timestamp (почти уникальная). Как мне добавить primary key так, чтобы он был упорядочен так же, как поле timestamp.
Могу сделать это в цикле как в коде, так в базе. Но меня интересует, можно ли это сделать каким-то другим способом? Спасибо

lost
19.01.2018
11:16:01
set @inc = 0;
update foo
set inc = @inc:=@inc +1
order by dt
Хотя сокральный смысл этого порядка я не улавливаю
ну праймари, ну и буй с ним
какая разница какая циферка

Сергей
19.01.2018
11:21:16
Это удобно
Можно понимать свежая запись или нет

Alexey
19.01.2018
11:22:14

lost
19.01.2018
11:25:08
А его может просто не быть, гг

Alexey
19.01.2018
11:25:59
как это, как это
в качестве него может быть gen_clust_index, но есть всегда

lost
19.01.2018
11:26:19
Ну понятно что в иннодб он есть всегда
Я про то что ручками его никто не сделал

Alexey
19.01.2018
11:27:00
alter table t add id serial primary key добавит primary key отсортированный в порядке текущего clustered index
timestamp поле, как я понял, неуникально, поэтому оно явно не clustered index. значит там gen_clust_index
и в результате получим id отсортированный в порядке вставки. но может он и совпадает с порядком timestamp поля?

Сергей
19.01.2018
11:30:12
Да, должен совпадать
А на дампе тоже будет это работать?
Есть же не только прод, но куча тестовых сред

Alexey
19.01.2018
11:34:22
в дампе они будут в том порядке, в котором их select * вытянул. для innodb это clustered index всегда

Google

Alexey
19.01.2018
11:36:04
но я бы проверил что там с индексами. потому что если в таблице есть хотя бы один явный уникальный индекс, innodb будет его в качестве кластеризованного индекса использовать
проверить можно как-то так:
select i.* from information_schema.innodb_sys_indexes i join information_schema.innodb_sys_tables t on i.table_id = t.table_id where t.name='mydb/mytable'
у кластеризованного индекса в поле Type будет стоять 1

Сергей
19.01.2018
11:43:29
пустой результат. если убрать условия where, то будет 102 ряда, из них только один с type 1
там вообще индексов мало) ща хотя бы id везде добавить)

Alexey
19.01.2018
11:46:03
что-то не верю, что пустой результат. точно условие в where правильно написано? нужно именно в таком формате: t.name='dbname/tablename'

Сергей
19.01.2018
11:47:12
я без условия глазами результат просмотрел. нет такого и похожего ничего)

Alexey
19.01.2018
11:49:01
но глазами в том запросе имена таблицы и не увидеть, ну да ладно
можно просто на show create table посмотреть и убедиться, что уникальных индексов нет

Сергей
19.01.2018
11:49:31
поле name можно глазами просмотреть же

Alexey
19.01.2018
11:49:46
это index name, не table name
тогда уже добавить t.name

Сергей
19.01.2018
11:50:19
ой блять там есть primary key, но лучше бы я его не видел
это зашквар

Alexey
19.01.2018
11:50:30
хехе

Сергей
19.01.2018
11:50:54
спасибо) заюзаю цикл наверно и смени праймари

Alexey
19.01.2018
11:51:28
ну цикл не надо

lost
19.01.2018
11:51:51

Alexey
19.01.2018
11:51:58
создать пустую таблицу с нужной структурой. а потом insert into new_table select * from old_table order by ...;

Google

Alexey
19.01.2018
11:52:54
или как soul предлагает
или create table as select ... order by, а потом как я в самом начале предложил. много вариантов
и все примерно одинаковые по затратам

Сергей
19.01.2018
11:57:39
да, ваш вариант попробую, спасибо) таблицы небольшие

Vyacheslav
19.01.2018
17:34:58
Можно как то делая запрос SELECT * FROM tables исключить одну из колонок в этой выборке?

Jeep
19.01.2018
17:38:23
а что мешает перечислить все колонки, но не включать ту которую не нужно ?

Vyacheslav
19.01.2018
17:39:32
то, что этих колонок 54, и названия у них могут менятся
т.к. заказчик плавает
можно, конечно, пургем тянуть, sqlite, но тут и без этого веселье

Danil
19.01.2018
17:46:35
mysql> CREATE TEMPORARY TABLE temp_tb SELECT * FROM orig_tb;
mysql> ALTER TABLE temp_tb DROP col_x;
mysql> SELECT * FROM temp_tb;
Не мое , и как бы временная таблица (на больших данных будет не сверх быстро)- но сработает.
Есть еще несколько вариантов. Все так или иначе немного не "прямые". И брать юзать их на проде .. то еще удовольствие.
(mysql select all columns except one - запрос для гугления)

Фёдор
21.01.2018
14:42:15
Всем доброго дня