国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

將MySQL的臨時目錄建立在內存中的教程

2024-07-24 13:06:59
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了將MySQL的臨時目錄建立在內存中的教程,以獲得不關機情況下的高性能使用,需要的朋友可以參考下

MySQL 系統會在內存(MEMORY)和磁盤(MyISAM)中建立臨時表,如何能知道在磁盤中建立了多少臨時表以及在內存中建立多少臨時表呢?你可以通過下面命令獲知:

 

 
  1. mysql> SHOW GLOBAL STATUS LIKE 'Created_tmp%tables'
  2. +-------------------------+----------+ 
  3. | Variable_name | Value | 
  4. +-------------------------+----------+ 
  5. | Created_tmp_disk_tables | 49094 | 
  6. | Created_tmp_tables | 37842181 | 
  7. +-------------------------+----------+ 

很顯然,在內存中的臨時表的性能要比在磁盤中好得多得多,因此我們希望盡可能的在內存中建立臨時表。

為了實現這個要求,我們先檢查下臨時表的配置大小:

 

 
  1. mysql> SHOW GLOBAL VARIABLES LIKE '%table_size'
  2. +---------------------+----------+ 
  3. | Variable_name | Value | 
  4. +---------------------+----------+ 
  5. | max_heap_table_size | 25165824 | 
  6. | tmp_table_size | 25165824 | 
  7. +---------------------+----------+ 

如果臨時表的大小比上述值小,則放于內存中的 MEMORY 表;如果比上述值大則存放于磁盤中的 MyISAM 表。

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

如果臨時表已經開始導致嚴重的 I/O 性能問題,那么你就要考慮使用磁盤內存映射來代替物理磁盤。

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

這里我們推薦使用 tmpfs。

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

 

 
  1. shell> mkdir -p /mnt/ramdisk 
  2. shell> chown mysql:mysql /mnt/ramdisk 
  3. shell> mount -t tmpfs -o size=512M tmpfs /mnt/ramdisk 

為了在系統下次啟動時自動創建,我們可以將下列腳本置于 /etc/fstab 文件中:

 

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

MySQL 還是將數據寫到默認的磁盤,可通過下面命令來檢查:

 

 
  1. mysql> SHOW GLOBAL VARIABLES LIKE 'tmpdir'

 

 
  1. +---------------+-------+ 
  2. | Variable_name | Value | 
  3. +---------------+-------+ 
  4. | tmpdir | /tmp | 
  5. +---------------+-------+ 

你可以修復 my.cnf 文件來改變這個路徑,然后重啟數據庫。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乡城县| 旺苍县| 阳高县| 开江县| 临安市| 民乐县| 越西县| 邛崃市| 临安市| 湖南省| 中山市| 万年县| 牟定县| 托克托县| 广元市| 长白| 伊宁市| 卢龙县| 塘沽区| 河曲县| 聊城市| 景泰县| 南皮县| 澎湖县| 三江| 望谟县| 邵东县| 沙河市| 建阳市| 玉树县| 修武县| 黄骅市| 温州市| 漳州市| 宜宾市| 平远县| 正阳县| 奉新县| 开化县| 巴彦淖尔市| 兴文县|