2012-02-21 60 views
1

如果我從臨時表分頁,我何時刪除表?一旦它到達前端,表格是否會進入內存,以便表格可以立即丟棄?還是需要「停留」直到用戶停止翻閱頁面?從臨時表分頁

+0

很肯定的MySQL轉儲臨時表一旦連接被關閉(PHP腳本完成)。 – 2012-02-21 22:04:01

+0

那麼這是否意味着我應該使用臨時表進行分頁?我不確定這是什麼意思... – Jon 2012-02-21 22:06:52

+0

你爲什麼使用臨時表進行分頁?你到底在做什麼?你能給我們更多的細節嗎? – 2012-02-21 22:08:22

回答

2

MySQL 5.1 Reference Manual - 13.1.17 CREATE TABLE語句:

臨時表可見只對當前連接,當連接關閉時自動刪除。這意味着兩個不同的連接可以使用相同的臨時表名稱而不會相互衝突,也不會使用同名的現有非TEMPORARY表衝突。 (現有的表被隱藏,直到臨時表被刪除)。

  • 「如果我從一個臨時表,分頁我什麼時候刪除表?」

    只要連接關閉,MySQL就會自動執行此操作。


MySQL 5.1 Reference Manual - 14.4。 MEMORY(HEAP)存儲引擎:

MEMORY存儲引擎創建表,其中包含存儲在內存中的內容。以前,這些被稱爲HEAP表。 MEMORY是首選的術語,儘管HEAP仍然支持向後兼容。

MEMORY存儲引擎將每個表與一個磁盤文件相關聯。文件名以表名開頭,擴展名爲.frm,表示它存儲表定義。

例子:

CREATE TABLE test ENGINE=MEMORY 
SELECT ip,SUM(downloads) AS down 
FROM log_table GROUP BY ip; 
  • 確實/能表存儲在內存中,一旦它擊中的前端,使 表可以立刻被拋棄?

    是的,帶有搜索結果的表格可以放入內存,從而提供更快的訪問時間。


你可以閱讀更多:MySQL Documentation: MySQL Reference Manuals