国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql tmp_table_size優(yōu)化之設(shè)置多大合適

2024-07-24 12:44:41
字體:
供稿:網(wǎng)友

通過設(shè)置tmp_table_size選項(xiàng)來增加一張臨時(shí)表的大小,例如做高級GROUP BY操作生成的臨時(shí)表。如果調(diào)高該值,MySQL同時(shí)將增加heap表的大小,可達(dá)到提高聯(lián)接查詢速度的效果,建議盡量優(yōu)化查詢,要確保查詢過程中生成的臨時(shí)表在內(nèi)存中,避免臨時(shí)表過大導(dǎo)致生成基于硬盤的MyISAM表。

mysql> show global status like ‘created_tmp%‘;

+——————————–+———+

| Variable_name   | Value |

+———————————-+———+

| Created_tmp_disk_tables | 21197 |

| Created_tmp_files   | 58  |

| Created_tmp_tables  | 1771587 |

+——————————–+———–+

每次創(chuàng)建臨時(shí)表,Created_tmp_tables增加,如果臨時(shí)表大小超過tmp_table_size,則是在磁盤上創(chuàng)建臨時(shí)表,Created_tmp_disk_tables也增加,Created_tmp_files表示MySQL服務(wù)創(chuàng)建的臨時(shí)文件文件數(shù),比較理想的配置是:

Created_tmp_disk_tables / Created_tmp_tables * 100% <= 25%比如上面的服務(wù)器Created_tmp_disk_tables / Created_tmp_tables * 100% =1.20%,應(yīng)該相當(dāng)好了

默認(rèn)為16M,可調(diào)到64-256最佳,線程獨(dú)占,太大可能內(nèi)存不夠I/O堵塞

如果動(dòng)態(tài)頁面要調(diào)大點(diǎn),100M以上,如果網(wǎng)站大部分都是靜態(tài)內(nèi)容,一般64M足夠。

tmp_table_size優(yōu)化

數(shù)據(jù)庫連接突然增多到1000的問題

查看了一下,未有LOCK操作語句。

但是明顯有好多copy to tmp table的SQL語句,這條語讀的時(shí)間比較長,且這個(gè)表會被加讀鎖,相關(guān)表的update語句會被排進(jìn)隊(duì)列。如果多執(zhí)行幾次這樣的copyt to tmp table 語句,會造成更多的語句被阻塞。
連接太多造成mysql處理慢。

copy to tmp talbe 語句產(chǎn)生的原因是查詢需要Order By 或者Group By等需要用到結(jié)果集時(shí),參數(shù)中設(shè)置的臨時(shí)表的大小小于結(jié)果集的大小時(shí),就會將該表放在磁盤上,這個(gè)時(shí)候在硬盤上的IO要比內(nèi)銷差很多。所耗費(fèi)的時(shí)間也多很多。另外Mysql的另外一個(gè)參數(shù)max_heap_table_size比tmp_table_size小時(shí),則系統(tǒng)會把max_heap_table_size的值作為最大的內(nèi)存臨時(shí)表的上限,大于這個(gè)時(shí),改寫硬盤。
我們的mysql這兩個(gè)參數(shù)為:

tmp_table_size 33554432 (33.5M)
max_heap_table_size 16777216 (16.7M)
比較小。
建議增加到上百M(fèi)。我們的內(nèi)存應(yīng)該夠吧。

另外join_buffer_size(影響 表之間join性能的緩存)為131072 (131K)較小,可以增加一點(diǎn)。

[root@mail ~]# vi /etc/my.cnf

[mysqld]
tmp_table_size=200M

mysql> show processlist;
mysql> show columns from wp_posts;

SQL 語句的第一個(gè) LEFT JOIN ON 子句中: LEFT JOIN _myuser AS t3 ON t1.userid=t3.userid _mydata 的 userid 被參與了條件比較運(yùn)算。為 _mydata 表根據(jù)字段 userid 建立了一個(gè)索引: mysql> ALTER TABLE `_mydata` ADD INDEX ( `userid` )  增加 tmp_table_size 值。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 万安县| 锦屏县| 康定县| 景德镇市| 龙胜| 磴口县| 闸北区| 仁怀市| 曲松县| 平昌县| 苗栗市| 陵水| 田东县| 台北市| 玛沁县| 陆良县| 翁源县| 镶黄旗| 紫金县| 将乐县| 呼玛县| 百色市| 博客| 盱眙县| 新乡市| 定日县| 久治县| 奇台县| 辽宁省| 黑龙江省| 汝城县| 宁阳县| 永新县| 南汇区| 台东县| 泸州市| 桐庐县| 宜都市| 阳曲县| 宁南县| 张北县|