解決辦法:
創(chuàng)新互聯(lián)是專業(yè)的大祥網(wǎng)站建設(shè)公司,大祥接單;提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行大祥網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
當(dāng)臨時(shí)表不存在時(shí),將查詢結(jié)果保存在臨時(shí)表中:
CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name;
我的具體代碼是
CREATE temporary table tmp
(SELECT t1.pid a, t1.pname b,t2.pid c, t2.pdescribe d FROM
(SELECT pid,pname FROM admin_advert_place WHERE pid IN (3,4,5,6,7)) t1 LEFT JOIN
(SELECT pid,pdescribe FROM admin_advert_place
WHERE pgid IN (6,7,8)) t2 ON t1.pid = t2.pid)
MySQL臨時(shí)目錄用于存儲(chǔ)臨時(shí)文件或臨時(shí)表,值可以是一個(gè)使用“:”(Unix)或“;”(Windows)分隔的路徑列表,這些路徑可被輪流使用,以便將負(fù)載分到不同磁盤。
若MySQL server是作為Slave的角色,則不能將該目錄指向基于內(nèi)存文件系統(tǒng)的目錄或者當(dāng)主機(jī)重啟時(shí)會(huì)被清理掉的目錄,因?yàn)镾lave需要這些文件復(fù)制臨時(shí)表或執(zhí)行LOAD DATA INFILE操作,這些文件丟失會(huì)導(dǎo)致復(fù)制失敗。這意味著不能將slave的tmpdir設(shè)置為linux系統(tǒng)默認(rèn)的/tmp目錄。
對于Slave可以使用另一配置項(xiàng)slave_load_tmpdir來設(shè)置其臨時(shí)目錄,這樣Slave可以不使用通用選項(xiàng)tmpdir設(shè)置的臨時(shí)目錄,對于非Slave角色的MySQL?server沒此限制。
若臨時(shí)目錄不存在或權(quán)限不正確不僅會(huì)引起MySQL Server啟動(dòng)失敗還會(huì)導(dǎo)致其他可能使用到臨時(shí)目錄的MySQL實(shí)用程序運(yùn)行異常。很多MySQL相關(guān)程序會(huì)從MySQL Server的配置文件讀取選項(xiàng)值。
MySQL 日志配置
MySQL的tmpdir臨時(shí)文件說明及使用設(shè)置
一個(gè)MysQL /tmp目錄爆滿問題的處理
Shall I change the mysql tmpdir from /tmp to /var/lib/mysql/tmp ?
MySQL 臨時(shí)目錄
How to know if mysql tmpdir is being used?
MySQL, RAM disk for tmpdir?
Changing the tmp folder of MySQL
MySQL 需要?jiǎng)?chuàng)建隱式臨時(shí)表來解決某些類型的查詢。往往查詢的排序階段需要依賴臨時(shí)表。例如,當(dāng)您使用 GROUP BY,ORDER BY 或DISTINCT 時(shí)。這樣的查詢分兩個(gè)階段執(zhí)行:首先是收集數(shù)據(jù)并將它們放入臨時(shí)表中,然后是在臨時(shí)表上執(zhí)行排序。
對于某些 UNION 語句,不能合并的 VIEW,子查詢時(shí)用到派生表,多表 UPDATE 以及其他一些情況,還需要使用臨時(shí)表。如果臨時(shí)表很小,可以到內(nèi)存中創(chuàng)建,否則它將在磁盤上創(chuàng)建。MySQL 在內(nèi)存中創(chuàng)建了一個(gè)表,如果它變得太大,就會(huì)被轉(zhuǎn)換為磁盤上存儲(chǔ)。內(nèi)存臨時(shí)表的最大值由 tmp_table_size 或 max_heap_table_size 值定義,以較小者為準(zhǔn)。MySQL 5.7 中的默認(rèn)大小為 16MB。如果運(yùn)行查詢的數(shù)據(jù)量較大,或者尚未查詢優(yōu)化,則可以增加該值。設(shè)置閾值時(shí),請考慮可用的 RAM 大小以及峰值期間的并發(fā)連接數(shù)。你無法無限期地增加變量,因?yàn)樵谀承r(shí)候你需要讓 MySQL 使用磁盤上的臨時(shí)表。
注意:如果涉及的表具有 TEXT 或 BLOB 列,則即使大小小于配置的閾值,也會(huì)在磁盤上創(chuàng)建臨時(shí)表。
臨時(shí)表:一種特殊的表,用來存儲(chǔ)查詢的中間結(jié)果,并且會(huì)隨著當(dāng)前連接的結(jié)束而自動(dòng)刪除。mysql中有2種臨時(shí)表,分別是內(nèi)部臨時(shí)表和外部臨時(shí)表。
外部臨時(shí)表關(guān)鍵字:TEMPORARY 。
外部臨時(shí)表特征:
1、關(guān)鍵字TEMPORARY
2、臨時(shí)表創(chuàng)建完成之后,只有當(dāng)前可見,其他連接是看不到的,具有連接隔離性
3、臨時(shí)表在當(dāng)前連接結(jié)束之后,會(huì)自動(dòng)刪除。
臨時(shí)表可以存儲(chǔ)在內(nèi)存和磁盤。
分享題目:mysql臨時(shí)表怎么使用 mysql臨時(shí)表用法
文章來源:http://chinadenli.net/article0/dogedoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、微信小程序、營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、電子商務(wù)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)