用 Ubuntu 將 mysql database 搬到 ramdisk 上

改自同事 P 的筆記:
$ sudo -u mysql cp -rp /var/lib/mysql/DATABASE /var/lib/mysql/DATABASE_tmp  # backup the original one.
$ sudo -u mysql mv /var/lib/mysql/DATABASE /dev/shm/  # move DATABASE to shared memory.
$ sudo -u mysql ln -s /dev/shm/DATABASE /var/lib/mysql/DATABASE
$ sudo vim /etc/apparmor.d/usr.sbin.mysqld  # Add /dev/shm/DATABASE to the allow list
$ sudo /etc/init.d/apparmor restart 

關鍵在於 apparmor 的部份, 沒做的話, 在存取 DATABASE 時, 會出現 "Can't read ... (errno: 13)" 的錯誤訊息。

不過試了幾次將資料庫丟到 ramdisk 上, 好像都沒有變快過。如果要 scan 整個表格的話, 在 ramdisk 上似乎也沒變快。

網路上有人提到有 MEMORY engine 為啥會想放到 ramdisk, 每個人有不同的理由, 我的動機則是表格有欄位超過 512 bytes 無法用 MEMORY engine

留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

熟悉系統工具好處多多

virtualbox 使用 USB 裝置