成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

mysql的內(nèi)部臨時表-創(chuàng)新互聯(lián)

什么是內(nèi)部臨時表?

創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、網(wǎng)站制作與策劃設(shè)計,剛察網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:剛察等地區(qū)。剛察做網(wǎng)站價格咨詢:13518219792

不同于手工創(chuàng)建的臨時表,在sql執(zhí)行過程中可能會用到臨時文件存儲查詢結(jié)果,稱為internal temporary table;

該過程由Mysql自動完成,用戶無法手工干預(yù);

這些表或使用memory引擎存于內(nèi)存,或使用MyISAM引擎存于磁盤;

 

何時生成

使用order  by /group by的列并非全來自于join queue的第一個表

Distinct order by聯(lián)合使用

多表連接需要保存中間結(jié)果集

 

如何保存

SQL_SMALL_RESULT會使用內(nèi)存臨時表,除非包含必須使用磁盤臨時表的條件:

     當表包含blob/text列,或group by/distinct的列大于512字節(jié)時,必須使用磁盤臨時表;

     當臨時表 > min(tmp_table_size, max_heap_table_size)時,會自動將內(nèi)存臨時表轉(zhuǎn)化為磁盤臨時表

 

可通過狀態(tài)變量created_tmp_tables/created_tmp_disk_tables查看內(nèi)部臨時表的使用情況

 

 

內(nèi)部臨時表某些情況下會自動生成索引,以提升性能

MySQL does create two keys on internal temporary tables namely ‘group_key‘ and ‘distinct_key‘ in the following conditions:

If there is any aggregate function and/or group-by (group_key)

Distinct column name(group_key)

Distinct in combination with group-by/aggregation functions (distinct_key)

http://venublog.com/2010/03/08/when-indexes-are-created-in-internal-temporary-tables/

 

已經(jīng)有人開發(fā)相應(yīng)patch,可通過hint強行在內(nèi)部臨時表上創(chuàng)建 index

SELECT

    SUM(aggrpt.imps) as imps,

    SUM(aggrpt.clicks) as clicks,

    SUM(aggrpt.pos) as pos

FROM aggrpt

LEFT JOIN

(

    SELECT

    DISTINCT ext_group_id, group_id

    FROM sub

) sub2  ON(sub2.ext_group_id=aggrpt.adgroupid)

GROUP BY

aggrpt.report_date,

aggrpt.campaignid,

aggrpt.adgroupid,

aggrpt.keywordid

ORDER BY NULL

INTO OUTFILE '/tmp/test-sub.txt'

--------------

Query OK, 47827 rows affected (6 min 47.48 sec)

 

有兩種方法改進:1  將子查詢改寫為一個臨時表,并在ext_group_id上創(chuàng)建索引;2 對中間結(jié)果集添加索引 ,sub2 <strong>USE INDEX(ext_group_id)</strong> ON(sub2.ext_group_id=aggrpt.adgroupid)

改進后的運行時間

Query OK, 47827 rows affected (7.18 sec)

 

 

http://venublog.com/2010/03/06/how-to-improve-subqueries-derived-tables-performance/

 

網(wǎng)頁名稱:mysql的內(nèi)部臨時表-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://jinyejixie.com/article10/jgcgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、網(wǎng)站策劃、響應(yīng)式網(wǎng)站、手機網(wǎng)站建設(shè)、企業(yè)建站、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
泸西县| 平利县| 当涂县| 洪江市| 通道| 噶尔县| 阳城县| 农安县| 南康市| 西乌珠穆沁旗| 陆川县| 越西县| 罗田县| 黄浦区| 响水县| 堆龙德庆县| 子洲县| 依兰县| 宝鸡市| 乌拉特前旗| 噶尔县| 桃园市| 太和县| 谢通门县| 五河县| 宜都市| 云南省| 武川县| 磐安县| 永定县| 商河县| 鄄城县| 寻乌县| 通化市| 日土县| 六枝特区| 沙坪坝区| 息烽县| 洪湖市| 阜南县| 民乐县|