--但是的確還是很慢,用的是heap表。因?yàn)榕R時(shí)表不能建立索引,所以根據(jù)條件取值還是比較慢的,如此建立索引表還不如建立一個(gè)真實(shí)的表??梢越⑴R時(shí)表,可以用來(lái)存儲(chǔ)全部要用來(lái)操作的數(shù)據(jù),而不用根據(jù)條件去選取記錄來(lái)操作。
創(chuàng)新互聯(lián)長(zhǎng)期為數(shù)千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為盤(pán)龍企業(yè)提供專(zhuān)業(yè)的網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),盤(pán)龍網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
臨時(shí)表可能是非常有用的,在某些情況下,保持臨時(shí)數(shù)據(jù)。最重要的是應(yīng)該知道的臨時(shí)表是,他們將當(dāng)前的客戶(hù)端會(huì)話(huà)終止時(shí)被刪除。臨時(shí)表中添加MySQL版本23。
臨時(shí)表:一種特殊的表,用來(lái)存儲(chǔ)查詢(xún)的中間結(jié)果,并且會(huì)隨著當(dāng)前連接的結(jié)束而自動(dòng)刪除。mysql中有2種臨時(shí)表,分別是內(nèi)部臨時(shí)表和外部臨時(shí)表。外部臨時(shí)表關(guān)鍵字:TEMPORARY 。
臨時(shí)表中添加MySQL版本23。如果您使用的是舊版本的MySQL比23,可以不使用臨時(shí)表,但可以使用堆表。如前所述臨時(shí)表將只持續(xù)只要的會(huì)話(huà)是存在的。
MySQL 會(huì)基本遵守 max_heap_table_size 的設(shè)定,在內(nèi)存不夠用時(shí),直接將表轉(zhuǎn)到磁盤(pán)上存儲(chǔ)。
對(duì)于某些 UNION 語(yǔ)句,不能合并的 VIEW,子查詢(xún)時(shí)用到派生表,多表 UPDATE 以及其他一些情況,還需要使用臨時(shí)表。如果臨時(shí)表很小,可以到內(nèi)存中創(chuàng)建,否則它將在磁盤(pán)上創(chuàng)建。
1、結(jié)果會(huì)很小,請(qǐng)直接使用內(nèi)存臨時(shí)表,不需要使用索引排序SQL_SMALL_RESULT必須和GROUP BY、DISTINCT或DISTINCTROW一起使用一般情況下,我們沒(méi)有必要使用這個(gè)選項(xiàng),讓MySQL服務(wù)器選擇即可。
2、MySQL 7起,開(kāi)始采用獨(dú)立的臨時(shí)表空間(和獨(dú)立的undo表空間不是一回事喲),命名ibtmp1文件,初始化12M,且默認(rèn)無(wú)上限。選項(xiàng) innodb_temp_data_file_path 可配置臨時(shí)表空間相關(guān)參數(shù)。
3、開(kāi)始準(zhǔn)備用一個(gè)臨時(shí)表,從一個(gè)表中一次性通過(guò)count ..group by來(lái)得到所有的字段,并且插入臨時(shí)表中,這個(gè)操作的確很快,下次取出這些值并以此排序的時(shí)候可以直接根據(jù)一個(gè)條件從臨時(shí)表中得到。
4、MySQL 需要?jiǎng)?chuàng)建隱式臨時(shí)表來(lái)解決某些類(lèi)型的查詢(xún)。往往查詢(xún)的排序階段需要依賴(lài)臨時(shí)表。例如,當(dāng)您使用 GROUP BY,ORDER BY 或DISTINCT 時(shí)。