您好,登錄后才能下訂單哦!
mysql優化最常見的就是my.cnf文件配置優化
限制線程,訪問等等
max_connections = 151
每個版本的限制不一樣,限制最多連接數,并發訪問多,可以適當調高
back_log = 數值
如果并發量大,很多命令沒法及時解決,使用這個參數就可以讓后來的命令排隊,存放在堆棧中
show full processlist 使用這個命令可以查看有多少命令在等待中,如果很多這時候就需要增加 back 或者connections的值
wait_timeout = 60 是一個非交互式等待的秒數,省的占用資源
interactive_time = 200 交互式鏈接,如果長時間不操作自動斷開,給其他資源讓路
key_buffer_size = 256M
索引緩沖區大小,會緩存索引,省的去磁盤讀取節省IO資源,但是會占用內存空間
show status like 'key_read%'; 查看索引請求,多少是在緩沖區 多少沒有.
query_cache_size = 256M
SQL查詢語句緩沖,需要兩條語句一模一樣才能匹配
show status like 'Qcache%' 查看各種query_cache_size設置信息
Qcache_free_blocks 如果數值過大則是碎片過多需要整理
Qcache_free_memory 剩余內存大小
Qcache_hits 多少次命中緩存,
Qcache_inserts 多少次未命中
Qcache_lowmem_prunes 因為內存不足而不記錄的語句
show variables like 'query_cache%'
query_cache_ limit 超過多大的查詢不緩存,看情況
query_cache_ min_res_unit 塊的大小,大了提高速度,小了節省空間
query_cache_ size 查詢緩存大小
query_cache_ type = 0/1/2 緩存類型,0等于關閉不緩存 1會緩存所有結果 2 通過sql_cache 指定需要緩存的查詢
max_connect_errors = 10
密碼錯誤次數限制,可以防止暴力破解,如果輸錯多少次,以后再也不響應,除非重啟mysql或者flush hosts清空.
sort_buffer_size = 2M
mysql是通過線程來處理問題,主線程,分配給一個工作線程,每個線程會占用一定內存資源,如果這個值過高,在碰巧遇到高并發,就會耗盡內存,看情況而定
max_allowed_packet = 32M
mysql會根據這個來限制接受的數據包大小,如果大了則失敗
join_buffer_size=2M
表關聯緩存大小,和sort_buffer_size = 2M一樣,對每個線程鏈接分配.
thread_cache_size = 300
緩存的工作線程, 主線程有事情了直接從緩存線程中提取分配,如果自動生成在結束時會自動銷毀.
-----------------------------------------------------------------------------
innodb配置
innodb_buffer_pool_size = 2048M
類似key_buffer_size lnnodb使用這個來確定緩沖數據和索引的大小
innodb_flush_log_at_trx_commit = 0/1/2
0每秒鐘將logbuffer中的數據寫入flush
1美妙和每次事物提交將log buffer中的數據寫入flush
2每次每秒鐘完成一次flush操作
這條對速度的影響非常大,如果在允許mysql地址碎金部分事物的危險前提下,可以設置0 2.
innodb_thread_concurrency = 0
設置innodb的并發量,0不限制 一般CPU核心數的2倍,一般為8
innodb_log_buffer_size = 32M
緩存日志大小,事物很大,需要增加緩存
innodb_log_file_size = 50M
確定數據日志文件的大小
innodb_log_files_in_group =3
mysql 可以將日志文件寫到多個文件,推薦是3
read_buffer_size = 1M
為每個鏈接單獨分配內存,可以增加性能,但是消耗內存
read_rnd_buffer_size = 16M
隨手記讀緩沖區大小,如果需要排序時,會分配一個隨機讀緩沖區進行排序查詢,避免磁盤搜索占用IO提高查詢速度,如果數據大可以適當提高.
bulk_insert_buffer_size = 64M
批量插入緩存大小可以有效提高效率,默認8M
binary log
log-bin=/*****mysql-bin
binlog_cache_size
存儲二進制日志文件緩存
max_binlog_cache_size = 8M 使用的cache內存大小
max_binlog_size = 512M 日志文件大小,如果達到則會創建新的binlog日志
expire_logs_days = 7 定期清理過期日志
mysqladmin flush-logs 重新生成新的日志文件.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。