2010年9月30日 星期四

用 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

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...