Mysql 數據庫優化

  1. 開啓定時任務

    SHOW VARIABLES LIKE  'event%';   -- 查看定時任務是否開啓(off:關閉 on:開啓) mysql

    set global event_scheduler =1;     -- 1:表明開啓 0:表明關閉
    sql

  2. 動態開啓MYSQL慢查詢

    -- 查看Mysql系統變量 spa

    SHOW VARIABLES;
    日誌

    -- 設置慢查詢時間(單位秒)
    索引

    set long_query_time = 2;  it

    -- 開啓慢查詢(5.1.19之前是log_slow_queries 5.1.19之後是:slow_query_log,5.1.21以前的版本,變量值只能設置爲整,最小能夠設置爲1(秒),5.1.21以前能夠設置小數,1.000002(1秒又2微妙))
    io

    set GLOBAL slow_query_log = ON;  innodb

    -- 設置日誌表文件 event

    set slow_query_log_file= d:\mysql_log\slow_log.log;  table

    -- 沒有使用索引頁記錄慢日誌

    set global log_queries_not_using_indexes = ON; 

  3. 修改上傳文件大小

    [mysqld]

    max_allowed_packet = 10M

  4. 設置 innodb_log_file_size 大小

    [mysqld]

    innodb_log_file_size = 200M

    Caused BY: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: The size of BLOB/TEXT DATA inserted IN ONE TRANSACTION IS greater THAN 10% of redo LOG size. Increase the redo LOG size USING innodb_log_file_size. (innodb_log_file_size 設置太小,上傳文件過大)

  5. mysql自動斷開鏈接

    SHOW VARIABLES LIKE '%timeout%';

    MYSQL默認interactive_timeout、wait_timeout時間:28800秒(8小時)

    修改/etc/my.cnf 下爲:

    [mysqld]

    interactive_timeout=28800000

    wait_timeout=28800000

    或臨時設置

    SET interactive_timeout=28800000;

    SET wait_timeout=28800000;

  6. my.cnf開啓MYSQL慢查詢

       [mysqld]

       long_query_time=2

       log-slow-queries=d:\mysql_log\mysql_log.log

       開啓仍是要命令模式:

       -- 開啓慢查詢

       set GLOBAL slow_query_log = ON; 

       -- 沒有使用索引頁記錄慢日誌

       set log_queries_not_using_indexes = ON; 

    4.  開啓MYSQL(innodb)獨立表空間

    -- 開啓Innodb表單個文件

    [mysqld]

    innodb_file_per_table=1

    5. group_concat_max_len 設置

           SET GLOBAL group_concat_max_len=102400;

           SET SESSION group_concat_max_len=102400;

相關文章
相關標籤/搜索