將MySQL的臨時目錄建立在內(nèi)存中的教程
MySQL 系統(tǒng)會在內(nèi)存(MEMORY)和磁盤(MyISAM)中建立臨時表,如何能知道在磁盤中建立了多少臨時表以及在內(nèi)存中建立多少臨時表呢?你可以通過下面命令獲知:
mysql> SHOW GLOBAL STATUS LIKE 'Created_tmp%tables'; +-------------------------+----------+ | Variable_name | Value | +-------------------------+----------+ | Created_tmp_disk_tables | 49094 | | Created_tmp_tables | 37842181 | +-------------------------+----------+
很顯然,在內(nèi)存中的臨時表的性能要比在磁盤中好得多得多,因此我們希望盡可能的在內(nèi)存中建立臨時表。
為了實現(xiàn)這個要求,我們先檢查下臨時表的配置大?。?br />
mysql> SHOW GLOBAL VARIABLES LIKE '%table_size'; +---------------------+----------+ | Variable_name | Value | +---------------------+----------+ | max_heap_table_size | 25165824 | | tmp_table_size | 25165824 | +---------------------+----------+
如果臨時表的大小比上述值小,則放于內(nèi)存中的 MEMORY 表;如果比上述值大則存放于磁盤中的 MyISAM 表。
但還有一個其他的因素會導(dǎo)致存放到磁盤的 MyISAM 表,那就是 MEMORY 表不能處理 TEXT 和 BLOG 類型數(shù)據(jù)。這種情況下 MySQL 會直接寫入磁盤中的 MyISAM,并算作是 Created_tmp_disk_tables 的值。
如果臨時表已經(jīng)開始導(dǎo)致嚴重的 I/O 性能問題,那么你就要考慮使用磁盤內(nèi)存映射來代替物理磁盤。
在 Linux 上我們有兩種方法在內(nèi)存中建立 RAM-Disk,分別是 ramfs 和 tmpfs。
這里我們推薦使用 tmpfs。
可通過如下命令來創(chuàng)建 RAM-disk:
shell> mkdir -p /mnt/ramdisk shell> chown mysql:mysql /mnt/ramdisk shell> mount -t tmpfs -o size=512M tmpfs /mnt/ramdisk
為了在系統(tǒng)下次啟動時自動創(chuàng)建,我們可以將下列腳本置于 /etc/fstab 文件中:
tmpfs /mnt/ramdisk tmpfs rw,mode=1777 0 0
MySQL 還是將數(shù)據(jù)寫到默認的磁盤,可通過下面命令來檢查:
mysql> SHOW GLOBAL VARIABLES LIKE 'tmpdir';
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | tmpdir | /tmp | +---------------+-------+
你可以修復(fù) my.cnf 文件來改變這個路徑,然后重啟數(shù)據(jù)庫。
相關(guān)文章
MySQL order by實現(xiàn)原理分析和Filesort優(yōu)化方式
這篇文章主要介紹了MySQL order by實現(xiàn)原理分析和Filesort優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12MySQL將select結(jié)果執(zhí)行update的實例教程
這篇文章主要給大家介紹了關(guān)于MySQL將select結(jié)果執(zhí)行update的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01mysql根據(jù)json字段內(nèi)容作為查詢條件(包括json數(shù)組)檢索數(shù)據(jù)
本文主要介紹了mysql根據(jù)json字段內(nèi)容作為查詢條件(包括json數(shù)組)檢索數(shù)據(jù),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02MySQL 創(chuàng)建多對多和一對一關(guān)系方法
這篇文章主要介紹了MySQL 創(chuàng)建多對多和一對一關(guān)系方法,文章舉例詳細說明具有一定的參考價值,需要的小伙伴可以參考一下2022-03-03