sql >> データベース >  >> RDS >> Mysql

すべてのクエリをmysqlに記録します

    :mysql-5.6以降の場合、これは機能しません。 下にスクロール またはここをクリック 。)

    MySQLサーバーを再起動したくない、または再起動できない場合は、実行中のサーバーで次のように進めることができます。

    • mysqlでログテーブルを作成します データベース
      CREATE TABLE `slow_log` (
       `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                              ON UPDATE CURRENT_TIMESTAMP,
       `user_host` mediumtext NOT NULL,
       `query_time` time NOT NULL,
       `lock_time` time NOT NULL,
       `rows_sent` int(11) NOT NULL,
       `rows_examined` int(11) NOT NULL,
       `db` varchar(512) NOT NULL,
       `last_insert_id` int(11) NOT NULL,
       `insert_id` int(11) NOT NULL,
       `server_id` int(10) unsigned NOT NULL,
       `sql_text` mediumtext NOT NULL,
       `thread_id` bigint(21) unsigned NOT NULL
      ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
    
      CREATE TABLE `general_log` (
       `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
                              ON UPDATE CURRENT_TIMESTAMP,
       `user_host` mediumtext NOT NULL,
       `thread_id` bigint(21) unsigned NOT NULL,
       `server_id` int(10) unsigned NOT NULL,
       `command_type` varchar(64) NOT NULL,
       `argument` mediumtext NOT NULL
      ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
    
    • データベースでクエリログを有効にする
    SET global general_log = 1;
    SET global log_output = 'table';
    
    • ログを表示する
    select * from mysql.general_log
    
    • データベースでクエリログを無効にする
    SET global general_log = 0;
    


    1. 書評:Benjamin Nevarez:クエリの調整と最適化

    2. テーブル/データベースの文字セットを決定しますか?

    3. 悪い習慣:行を数えるのは難しい

    4. MySQLの高いCPU使用率