日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

mysql多字段数据统计_超详细的mysql元数据sql统计--information_schema

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql多字段数据统计_超详细的mysql元数据sql统计--information_schema 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

information_schema 數據庫跟 performance_schema 一樣,都是 MySQL 自帶的信息數據庫。其中 performance_schema 用于性能分析,而 information_schema 用于存儲數據庫元數據(關于數據的數據),例如數據庫名、表名、列的數據類型、訪問權限等。

information_schema 中的表實際上是視圖,而不是基本表,因此,文件系統上沒有與之相關的文件。

今天主要分享一些跟information_schema息息相關的一些統計命令。


1、沒有使用索引的表統計

SELECTt.TABLE_SCHEMA,t.TABLE_NAME,t.TABLE_ROWS FROMinformation_schema.TABLES AS tLEFT JOIN ( SELECT DISTINCT table_schema, table_name FROM information_schema.`KEY_COLUMN_USAGE` ) AS kt  ON kt.table_schema = t.table_schema AND kt.table_name = t.table_name WHEREt.table_schema NOT IN ( 'mysql', 'information_schema', 'performance_schema', 'test' ) AND kt.table_name IS NULL;

2、查看存儲過程和函數

select routine_name,ROUTINE_SCHEMA,ROUTINE_TYPE from information_schema.routines;

3、查看使用myisam的表

SELECTtable_schema,table_name FROMinformation_schema.TABLES WHEREENGINE = 'MyISAM' AND table_schema NOT IN ( 'information_schema', 'performance_schema', 'mysql' )

4、查看沒有使用主鍵的表統計

SELECTt.table_schema,t.table_name,t.ENGINE,IF( ISNULL( c.constraint_name ), 'NOPK', '' ) AS nopk,IF( s.index_type = 'FULLTEXT', 'FULLTEXT', '' ) AS ftidx,IF( s.index_type = 'SPATIAL', 'SPATIAL', '' ) AS gisidx FROMinformation_schema.TABLES AS tLEFT JOIN information_schema.key_column_usage AS c ON ( t.table_schema = c.constraint_schema AND t.table_name = c.table_name AND c.constraint_name = 'PRIMARY' )LEFT JOIN information_schema.statistics AS s ON ( t.table_schema = s.table_schema AND t.table_name = s.table_name AND s.index_type IN ( 'FULLTEXT', 'SPATIAL' ) ) WHEREt.table_schema NOT IN ( 'information_schema', 'performance_schema', 'mysql' ) AND t.table_type = 'BASE TABLE' AND c.constraint_name IS NULL ORDER BYt.table_schema,t.table_name;

5、行數據前10統計的表

SELECTtable_schema,table_name,table_rows,data_length,index_length,CONCAT( ROUND( ( data_length + index_length ) / ( 1024 * 1024 ), 2 ), 'M' ) AS 'Total',CONCAT( ROUND( DATA_FREE / ( 1024 * 1024 ), 2 ), 'M' ) FROMinformation_schema.TABLES WHEREtable_schema NOT IN ( 'information_schema', 'mysql', 'performance_schema', 'test' ) ORDER BYtable_rows DESC LIMIT 10;

6、查看主外鍵約束

SELECTC.TABLE_SCHEMA,C.REFERENCED_TABLE_NAME,C.REFERENCED_COLUMN_NAME,C.TABLE_NAME,C.COLUMN_NAME,C.CONSTRAINT_NAME,T.TABLE_COMMENT,R.UPDATE_RULE,R.DELETE_RULE FROMINFORMATION_SCHEMA.KEY_COLUMN_USAGE CJOIN INFORMATION_SCHEMA.TABLES T ON T.TABLE_NAME = C.TABLE_NAMEJOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS R ON R.TABLE_NAME = C.TABLE_NAME AND R.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND R.REFERENCED_TABLE_NAME = C.REFERENCED_TABLE_NAME WHEREC.REFERENCED_TABLE_NAME IS NOT NULL;

7、查看觸發器

select TRIGGER_SCHEMA,TRIGGER_NAME,DEFINER,ACTION_STATEMENT from information_schema.TRIGGERS 

8、查看視圖表

select table_schema,table_name,definer,VIEW_DEFINITION,COLLATION_CONNECTION from information_schema.views where table_schema not in ('sys')group by table_name,table_schema,VIEW_DEFINITION,VIEW_DEFINITION,COLLATION_CONNECTION

說明:

  • sql1語句收集沒有任何索引的表(包括主鍵),這種表是非常危險的,應該避免出現
  • sql2語句收集存儲過程和函數,有利于線上的規范
  • sql3 語句收集myisam表引擎的表,這種表會引起大量的表級鎖,應該避免出現
  • sql4 語句收集沒有主鍵的表,這種表會引起性能問題,應該避免出現
  • sql5 語句收集大表前10,大表對于mysql的性能影響很關鍵,應該盡量減少大表的出現
  • sql6 語句收集主外鍵約束的表,擁有主外鍵約束的表可以影響手動DML操作,DBA應該注意
  • sql7 語句收集觸發器的表,用戶觸發器的表是無法應用pt工具的,DBA應該注意
  • sql8 視圖語句收集的表,通過對 views 表的查詢可以查看數據庫中所有視圖的詳細信息。

后面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

如果你覺得這篇文章對你有幫助, 請小小打賞下~

總結

以上是生活随笔為你收集整理的mysql多字段数据统计_超详细的mysql元数据sql统计--information_schema的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。