$ 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。
沒有留言:
張貼留言