將MySQL的臨時目錄建立在記憶體中的教程

來源:互聯網
上載者:User

   MySQL 系統會在記憶體(MEMORY)和磁碟(MyISAM)中建立暫存資料表,如何能知道在磁碟中建立了多少暫存資料表以及在記憶體中建立多少暫存資料表呢?你可以通過下面命令獲知:

  mysql> SHOW GLOBAL STATUS LIKE 'Created_tmp%tables';

  +-------------------------+----------+

  | Variable_name | Value |

  +-------------------------+----------+

  | Created_tmp_disk_tables | 49094 |

  | Created_tmp_tables | 37842181 |

  +-------------------------+----------+

  很顯然,在記憶體中的暫存資料表的效能要比在磁碟中好得多得多,因此我們希望儘可能的在記憶體中建立暫存資料表。

  為了實現這個要求,我們先檢查下暫存資料表的配置大小:

  mysql> SHOW GLOBAL VARIABLES LIKE '%table_size';

  +---------------------+----------+

  | Variable_name | Value |

  +---------------------+----------+

  | max_heap_table_size | 25165824 |

  | tmp_table_size | 25165824 |

  +---------------------+----------+

  如果暫存資料表的大小比上述值小,則放於記憶體中的 MEMORY 表;如果比上述值大則存放於磁碟中的 MyISAM 表。

  但還有一個其他的因素會導致存放到磁碟的 MyISAM 表,那就是 MEMORY 表不能處理 TEXT 和 BLOG 類型資料。這種情況下 MySQL 會直接寫入磁碟中的 MyISAM,並算作是 Created_tmp_disk_tables 的值。

  如果暫存資料表已經開始導致嚴重的 I/O 效能問題,那麼你就要考慮使用磁碟記憶體映射來代替物理磁碟。

  在 Linux 上我們有兩種方法在記憶體中建立 RAM-Disk,分別是 ramfs 和 tmpfs。

  這裡我們推薦使用 tmpfs。

  可通過如下命令來建立 RAM-disk:

  shell> mkdir -p /mnt/ramdisk

  shell> chown mysql:mysql /mnt/ramdisk

  shell> mount -t tmpfs -o size=512M tmpfs /mnt/ramdisk

  為了在系統下次啟動時自動建立,我們可以將下列指令碼置於 /etc/fstab 檔案中:

  tmpfs /mnt/ramdisk tmpfs rw,mode=1777 0 0

  MySQL 還是將資料寫到預設的磁碟,可通過下面命令來檢查:

  mysql> SHOW GLOBAL VARIABLES LIKE 'tmpdir';

  +---------------+-------+

  | Variable_name | Value |

  +---------------+-------+

  | tmpdir | /tmp |

  +---------------+-------+

  你可以修複 my.cnf 檔案來改變這個路徑,然後重啟資料庫。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.