Получить использование столбцов в таблицах БД - PullRequest
0 голосов
/ 05 сентября 2018

Я думал о правильном проектировании базы данных, когда просматривал некоторые базы данных, где из 150000 записей в некоторых столбцах было установлено только 5-20 значений. Это заставило меня задуматься о том, что столбцы с низкой загрузкой следует перенести в сводную таблицу, и я надеялся запустить отчет, в котором было бы указано, что оценивать.

Я попробовал foreach, но он не работает для меня. Любые советы?

foreach('SELECT table_name,
       column_name
FROM   information_schema.columns
WHERE  table_schema = "mydb"', 
'SELECT    ${2}, utilization
FROM      mydb.${1}.${2}
LEFT JOIN
          (
                 SELECT sum(secondary_email)/count(*) AS utilization
                 FROM   (
                               SELECT
                                      CASE
                                             WHEN secondary_email IS NULL THEN 0
                                             ELSE 1
                                      END AS secondary_email
                               FROM   offices ) AS c )
GROUP BY  ${2} ')

1 Ответ

0 голосов
/ 05 сентября 2018

Я надеялся на лучший ответ, не стесняйтесь делать меня здесь. Скопируйте и вставьте сюда вывод и удалите окончательный UNION ALL

SELECT 
    CONCAT('SELECT ', QUOTE(tb), ', ',QUOTE(col),', sum(`has_value`)/count(*) AS utilization FROM   (SELECT CASE WHEN `',col,'` IS NULL THEN 0 ELSE 1 END AS has_value FROM   ',tb,'  ) AS c UNION ALL') SearchSQL
FROM
(
    SELECT table_schema db,table_name tb,column_name col FROM information_schema.columns
    WHERE table_schema = 'myDB' AND
    (column_type LIKE 'char(%' OR column_type LIKE 'varchar(%' OR column_type LIKE '%text')
) A
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...