Неужели остается только делать новую таблицу и переливать в неё данные?

|
2022-06-25 14:20:59
oligarhe 2022-06-25 13:53:53
инетересно — запрос с подзапросами с count — такой же по скорости как 3 отдельный select count?

Как оптимизатор решит. По идее, если поля groupid/type/value проиндексированы, то большой разницы быть не должно. Но тут опять-таки — что есть быстро для вашей задачи, а что медленно. Если у вас в таблице 100..1000 записей, то какая разница.

oligarhe 2022-06-25 14:21:43
2022-06-25 14:20:59
Как оптимизатор решит. По идее, если поля groupid/type/value проиндексированы, то большой разницы быть не должно. Но тут опять-таки — что есть быстро для вашей задачи, а что медленно. Если у вас в таблице 100..1000 записей, то какая разница.

Спасибо за ответ!

2022-06-25 14:23:28
oligarhe 2022-06-25 13:47:45
Точно! А одним запросом это только через саб-запросы SELECT COUNT? Может стоит разбить таблицы еще как-то?

Если делать один запрос, то с т.з. оптимизации очевидно, что сначала надо отобрать по условию
WHERE groupid = 1 AND value IS NOT NULL
а потом уже делать подсчёты из оставшегося с группировкой.

oligarhe 2022-06-25 14:44:50
2022-06-25 14:23:28
Если делать один запрос, то с т.з. оптимизации очевидно, что сначала надо отобрать по условию
WHERE groupid = 1 AND value IS NOT NULL
а потом уже делать подсчёты из оставшегося с группировкой.

спасибо

oligarhe 2022-06-25 14:55:59
mysql_db-181524.jpg
Пару дней обдумываю дизайн таблицы, есть вот такая:

Содержит значение и тип ячеек. Потом все это можно собрать в строки.
Ячеек порядка 40 тыс.
Скриптом валидирую каждую на паттерн регулярки.

Как итог — нужно пометить ячейки как true — false после вадидации.

Думал создать еще одну колонку status.
Потом добавились правила — что каждая ячейка может валидироваться на несколько правилах. Собственно нужно хранить уже два значения.

Решил создать еще одну промежуточную таблицу:

fieldid | validationid | status

Где хранить статусы от всех валидиторов для каждой проверенной ячейки.

Вопрос — может изначально таблица неправильно продумана? Есть замечания?

2022-06-25 15:28:41
oligarhe 2022-06-25 14:55:59
Пару дней обдумываю дизайн таблицы, есть вот такая:

Содержит значение и тип ячеек. Потом все это можно собрать в строки.
Ячеек порядка 40 тыс.
Скриптом валидирую каждую на паттерн регулярки.

Как итог — нужно пометить ячейки как true — false после вадидации.

Думал создать еще одну колонку status.
Потом добавились правила — что каждая ячейка может валидироваться на несколько правилах. Собственно нужно хранить уже два значения.

Решил создать еще одну промежуточную таблицу:

fieldid | validationid | status

Где хранить статусы от всех валидиторов для каждой проверенной ячейки.

Вопрос — может изначально таблица неправильно продумана? Есть замечания?

«Скриптом валидирую каждую на паттерн регулярки. »
Что за скрипт, где выполняется?

oligarhe 2022-06-25 15:29:16
2022-06-25 15:28:41
«Скриптом валидирую каждую на паттерн регулярки. »
Что за скрипт, где выполняется?

php . а валидаторы это регурярки

2022-06-25 15:33:24
Если суть состоит в проверке поля на некое условие с помощью RegEx, то:
1) MySQL в принципе может это делать сам, без PHP
2) Если условий несколько (немного), то достаточно завести числовое поле и устанавливать биты в 1/0 в зависимости от условий проверки,
2022-06-25 15:34:29
В таком виде это лучше оформить в качестве хранимой процедуры. И уже её дёргать из PHP.
oligarhe 2022-06-25 15:45:57
Кто знает — в postgres JOIN сработает только если соединяемые поля имеют одинаковый тип?
oligarhe 2022-06-25 15:47:41
mysql_db-181531.jpg

Slava Rozhnev 🙀 2022-06-25 15:48:35
oligarhe 2022-06-25 15:45:57
Кто знает — в postgres JOIN сработает только если соединяемые поля имеют одинаковый тип?

Можно конвертировать в строку, но затратно

oligarhe 2022-06-25 15:48:53
Slava Rozhnev 🙀 2022-06-25 15:48:35
Можно конвертировать в строку, но затратно

т-е проблема в разности типов?

Slava Rozhnev 🙀 2022-06-25 15:49:08
Да
Slava Rozhnev 🙀 2022-06-25 15:49:49
Хотя данный чат посвящён MySQL
2022-06-25 15:53:15
Slava Rozhnev 🙀 2022-06-25 15:49:49
Хотя данный чат посвящён MySQL

До сих пор вроде был посвящён MySQL.

Slava Rozhnev 🙀 2022-06-25 15:53:46
И в MySQL int прекрасно джойнится с текстом
https://sqlize.online/sql/mysql80/671ca8c067097d89e2107ce191730ce8/

*************SQLIZE.online
Share SQL shapshot
Slava Rozhnev 🙀 2022-06-25 15:55:52
2022-06-25 15:53:15
До сих пор вроде был посвящён MySQL.

Да, именно это я хотел подчеркнуть. Но опечатался. Извините 😳

2022-06-25 16:00:08
Slava Rozhnev 🙀 2022-06-25 15:55:52
Да, именно это я хотел подчеркнуть. Но опечатался. Извините 😳

Да ничего. Просто я внезапно подумал, что делаю в чате про постгрес, давая советы по MySQL.

GlanSible 2022-06-25 18:19:59
Всем привет. Подскажите, пожалуйста. Пытаюсь в aws rds mysql 5.7 изменить row format на dynamic но таблицы размером от 60гб не получается поменять, alter запрос отваливается с ошибкой lost connection during query. Изменял connection timeout, но все равно запрос отстреливается через час . Неужели остается только делать новую таблицу и переливать в неё данные?
Gr3ga 2022-06-25 18:24:27
А что в error.log?
Gr3ga 2022-06-25 18:24:57
Проверь аптайм сервера еще. Может субд крашнулась
vikatuman 2022-06-25 18:53:12
Всем привет! Почему при установке MySQL Server 8 может не появиться папка bin? ОС виндовс 10
vikatuman 2022-06-25 19:19:45
Спасибо!
|