📝

よく使うのにすぐ忘れる 怒りの MySQL INFORMATION_SCHEMA 検索クエリ

2020/10/11に公開

MySQL の INFORMATION_SCHEMA.COLUMNS などから検索するのをよくやるのに
一向に記憶できないので怒りのメモ

その1 似たような列名をもつテーブルを検索

-- 似たような列名をもつテーブルを検索
SELECT
  table_name
, column_name
FROM
  INFORMATION_SCHEMA.COLUMNS 
WHERE
    COLUMN_NAME like "%hoge%" -- 検索したい列名. LIKEも可
AND TABLE_SCHEMA = "myDatabaseName" -- 検索対象のDB名
; 

その2 似たようなテーブル名をもつテーブルを検索

-- 似たようなテーブル名をもつテーブルを検索
SELECT
    *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='myDatabaseName' and TABLE_NAME like '%fuga%'

その3 容量おおきいテーブルを探すクエリ

-- 容量おおきいテーブルを探すクエリ
SELECT  
    table_name, engine, table_rows AS tbl_rows,
    avg_row_length AS rlen,  
    floor((data_length+index_length)/1024/1024) AS `総容量Mb`,
    floor((data_length)/1024/1024) AS `データ容量Mb`,
    floor((index_length)/1024/1024) AS `インデックス容量Mb`
FROM 
    INFORMATION_SCHEMA.TABLES 
WHERE
    table_schema=database()  
ORDER BY
    (data_length+index_length) DESC;  

Discussion