一江春水向東流

          做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks

          emplate:Java MySQL 當工作在非常大的表上時,你可能偶爾需要運行很多查詢獲得一個大量數據的小的子集,不是對整個表運行這些查詢,而是讓MySQL每次找出所需的少數記錄,將記錄選擇到一個臨時表可能更快些,然后多這些表運行查詢。

          創建臨時表很容易,給正常的CREATE TABLE語句加上TEMPORARY關鍵字:

          CREATE TEMPORARY TABLE tmp_table (
          name VARCHAR(10) NOT NULL,
          value INTEGER NOT NULL
          )
          

          臨時表將在你連接MySQL期間存在。當你斷開時,MySQL將自動刪除表并釋放所用的空間。當然你可以在仍然連接的時候刪除表并釋放空間。

          DROP TABLE tmp_table
          

          如果在你創建名為tmp_table臨時表時名為tmp_table的表在數據庫中已經存在,臨時表將有必要屏蔽(隱藏)非臨時表tmp_table。

          如果你聲明臨時表是一個HEAP表,MySQL也允許你指定在內存中創建它:

          CREATE TEMPORARY TABLE tmp_table (
          name VARCHAR(10) NOT NULL,
          value INTEGER NOT NULL
          ) TYPE = HEAP
          

           

          因為HEAP表存儲在內存中,你對它運行的查詢可能比磁盤上的臨時表快些。然而,HEAP表與一般的表有些不同,且有自身的限制。詳見MySQL參考手冊。

          正如前面的建議,你應該測試臨時表看看它們是否真的比對大量數據庫運行查詢快。如果數據很好地索引,臨時表可能一點不快。

          posted on 2008-06-23 16:57 allic 閱讀(314) 評論(0)  編輯  收藏 所屬分類: PHP+MySQL開發
          主站蜘蛛池模板: 曲周县| 黔东| 永济市| 云梦县| 安陆市| 东港市| 京山县| 广州市| 香格里拉县| 怀安县| 庆元县| 东乡族自治县| 西青区| 金华市| 定州市| 上林县| 栾城县| 兖州市| 泾川县| 五莲县| 松潘县| 沁源县| 七台河市| 琼结县| 武邑县| 罗定市| 麻栗坡县| 漾濞| 襄汾县| 乐平市| 兰溪市| 阳谷县| 樟树市| 宁远县| 湖北省| 葫芦岛市| 调兵山市| 大港区| 香格里拉县| 丰都县| 枞阳县|