15 ຄຳ ແນະ ນຳ ໃນການປັບແຕ່ງແລະການເພີ່ມປະສິດທິພາບຂອງ MySQL/MariaDB ທີ່ມີປະໂຫຍດ
MySQL ແມ່ນລະບົບການຄຸ້ມຄອງຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງທີ່ມີປະສິດຕິພາບຫຼືໃນ RDBMS ສັ້ນໆ. ມັນຖືກປ່ອຍອອກມາໃນປີ 1995 (ອາຍຸ 20 ປີ). ມັນໃຊ້ພາສາທີ່ມີໂຄງສ້າງແບບສອບຖາມເຊິ່ງອາດຈະເປັນທາງເລືອກທີ່ນິຍົມທີ່ສຸດ ສຳ ລັບການຈັດການເນື້ອຫາພາຍໃນຖານຂໍ້ມູນ. ເວີຊັນ MySQL ລ້າສຸດແມ່ນ 5.6.25 ແລະຖືກປ່ອຍອອກມາເມື່ອວັນທີ 29 ພຶດສະພາ 2015.
ຂໍ້ເທັດຈິງທີ່ຫນ້າສົນໃຈກ່ຽວກັບ MySQL ແມ່ນຄວາມຈິງທີ່ວ່າຊື່ມາຈາກລູກສາວຂອງ Michael Widenius (ຜູ້ສ້າງ MySQL) ຂອງຂ້ອຍ. ເຖິງແມ່ນວ່າຈະມີຂໍ້ເທັດຈິງທີ່ ໜ້າ ສົນໃຈຫຼາຍກ່ຽວກັບ MySQL, ແຕ່ບົດຂຽນນີ້ມີຄວາມ ໝາຍ ເພື່ອສະແດງໃຫ້ທ່ານເຫັນການປະຕິບັດທີ່ເປັນປະໂຫຍດບາງຢ່າງເພື່ອຊ່ວຍທ່ານໃນການຈັດການເຊີຟເວີ MySQL ຂອງທ່ານ.
ໃນເດືອນເມສາປີ 2009 ໂຄງການ MySQL ໄດ້ຖືກຊື້ໂດຍ Oracle. ດັ່ງນັ້ນ, ຊຸມຊົນ MySQL fork ເອີ້ນວ່າ MariaDB ຖືກສ້າງຂື້ນ. ເຫດຜົນຕົ້ນຕໍໃນການສ້າງຄວາມຍາວຂອງສ້ອມແມ່ນເພື່ອຮັກສາໂຄງການໃຫ້ຢູ່ພາຍໃຕ້ໃບອະນຸຍາດສາທາລະນະທົ່ວໄປ.
ມື້ນີ້ MySQL ແລະ MariaDB ແມ່ນ ໜຶ່ງ ໃນຫລາຍທີ່ສຸດ (ຖ້າບໍ່ແມ່ນທີ່ສຸດ) RDBMS ທີ່ເຄີຍໃຊ້ເລື້ອຍໆທີ່ໃຊ້ ສຳ ລັບການ ນຳ ໃຊ້ເວັບຕ່າງໆເຊັ່ນ WordPress, Joomla, Magento ແລະອື່ນໆ.
ບົດຂຽນນີ້ຈະ ນຳ ສະ ເໜີ ບາງ ຄຳ ແນະ ນຳ ທີ່ເປັນພື້ນຖານ, ແຕ່ມີປະໂຫຍດຕໍ່ການປັບແຕ່ງການເຮັດວຽກຂອງ MySQL/MariaDB. ກະລຸນາຈື່ໄວ້ວ່າບົດຂຽນນີ້ສົມມຸດວ່າທ່ານໄດ້ຕິດຕັ້ງ MySQL ຫຼື MariaDB ແລ້ວ. ຖ້າທ່ານຍັງສົງໄສວິທີການຕິດຕັ້ງພວກມັນໃນລະບົບຂອງທ່ານ, ທ່ານສາມາດຕິດຕາມ ຄຳ ແນະ ນຳ ທີ່ກວ້າງຂວາງຂອງພວກເຮົາໄດ້ທີ່ນີ້:
<
ສິ່ງ ສຳ ຄັນ: ກ່ອນທີ່ພວກເຮົາຈະເລີ່ມຕົ້ນ - ຢ່າຍອມຮັບເອົາ ຄຳ ແນະ ນຳ ນີ້ໂດຍຕາບອດ. ການຕັ້ງ MySQL ແຕ່ລະອັນແມ່ນເປັນເອກະລັກແລະຕ້ອງການຄວາມຄິດເພີ່ມເຕີມ, ກ່ອນທີ່ຈະມີການປ່ຽນແປງໃດໆ.
ສິ່ງທີ່ທ່ານຕ້ອງຮູ້:
<
/etc/my.cnf
. ທຸກໆຄັ້ງທີ່ທ່ານດັດແປງເອກະສານນີ້ທ່ານຈະຕ້ອງໄດ້ເລີ່ມການບໍລິການ MySQL ຄືນ ໃໝ່ ເພື່ອວ່າການປ່ຽນແປງ ໃໝ່ ຈະມີຜົນບັງຄັບໃຊ້. 1. ເປີດໃຊ້ InnoDB file-per-table
ຫນ້າທໍາອິດມັນເປັນສິ່ງສໍາຄັນທີ່ຈະອະທິບາຍວ່າ InnoDB ແມ່ນເຄື່ອງຈັກເກັບຮັກສາ. MySQL ແລະ MariaDB ໃຊ້ InnoDB ເປັນເຄື່ອງຈັກເກັບຂໍ້ມູນໃນຕອນຕົ້ນ. ໃນໄລຍະຜ່ານມາ MySQL ໃຊ້ເພື່ອຮັກສາຕາຕະລາງຖານຂໍ້ມູນແລະດັດສະນີໄວ້ໃນຕາຕະລາງລະບົບ. ວິທີການນີ້ແມ່ນມີຄວາມ ໝາຍ ສຳ ລັບເຊີຟເວີເຊິ່ງຈຸດປະສົງດຽວແມ່ນການປະມວນຜົນຖານຂໍ້ມູນແລະແຜ່ນເກັບຂໍ້ມູນຂອງພວກມັນບໍ່ໄດ້ຖືກ ນຳ ໃຊ້ເພື່ອຈຸດປະສົງອື່ນ.
InnoDB ສະ ໜອງ ວິທີການທີ່ມີຄວາມຍືດຍຸ່ນຫຼາຍຂື້ນແລະແຕ່ລະຂໍ້ມູນຂອງຖານຂໍ້ມູນແມ່ນຖືກເກັບໄວ້ໃນແຟ້ມຂໍ້ມູນ .ibd
. ແຕ່ລະເອກະສານ .ibd ສະແດງໂຕpະຂອງມັນເອງ. ວິທີການປະຕິບັດງານຖານຂໍ້ມູນເຊັ່ນ "TRUNCATE" ສາມາດເຮັດ ສຳ ເລັດໄດ້ໄວຂຶ້ນແລະທ່ານກໍ່ອາດຈະເກັບເອົາພື້ນທີ່ທີ່ບໍ່ໄດ້ໃຊ້ໃນເວລາທີ່ຫຼຸດລົງຫຼືຕັດຕາຕະລາງຖານຂໍ້ມູນ.
ຜົນປະໂຫຍດອີກອັນ ໜຶ່ງ ຂອງການຕັ້ງຄ່ານີ້ແມ່ນຄວາມຈິງທີ່ວ່າທ່ານສາມາດເກັບຮັກສາຕາຕະລາງຖານຂໍ້ມູນບາງຢ່າງໄວ້ໃນອຸປະກອນເກັບຂໍ້ມູນຕ່າງຫາກ. ນີ້ສາມາດປັບປຸງການໂຫຼດ I/O ໃຫ້ດີຂື້ນໃນແຜ່ນຂອງທ່ານ.
innodb_file_per_table ຖືກເປີດໃຊ້ງານໂດຍຄ່າເລີ່ມຕົ້ນໃນ MySQL 5.6 ແລະສູງກວ່າ. ທ່ານສາມາດເຫັນໄດ້ໃນເອກະສານ /etc/my.cnf. ຄຳ ສັ່ງແນະ ນຳ ເບິ່ງດັ່ງນີ້:
innodb_file_per_table=1
2. ເກັບຮັກສາຂໍ້ມູນຖານຂໍ້ມູນ MySQL ໃນສ່ວນແບ່ງແຍກ
ໝາຍ ເຫດ: ການຕິດຕັ້ງນີ້ເຮັດວຽກກັບ MySQL ເທົ່ານັ້ນ, ແຕ່ບໍ່ແມ່ນກັບ MariaDB.
ບາງຄັ້ງ OS ອ່ານ/ຂຽນສາມາດເຮັດວຽກຂອງ MySQL ຂອງທ່ານຊ້າລົງ, ໂດຍສະເພາະຖ້າຕັ້ງຢູ່ຮາດດິດດຽວກັນ. ແທນທີ່ຈະ, ຂ້ອຍຂໍແນະ ນຳ ໃຫ້ໃຊ້ຮາດດິດແຍກຕ່າງຫາກ (ມັກ SSD) ສຳ ລັບບໍລິການ MySQL.
ເພື່ອເຮັດ ສຳ ເລັດ, ທ່ານ ຈຳ ເປັນຕ້ອງຕິດແຜ່ນ ໃໝ່ ນີ້ໃສ່ຄອມພິວເຕີ້/ເຊີບເວີຂອງທ່ານ. ສຳ ລັບຈຸດປະສົງຂອງບົດຂຽນນີ້, ຂ້າພະເຈົ້າຈະສົມມຸດວ່າການຂັບຈະຢູ່ພາຍໃຕ້/dev/sdb.
ຂັ້ນຕອນຕໍ່ໄປແມ່ນການກະກຽມຂັບ ໃໝ່:
# fdisk /dev/sdb
ຕອນນີ້ກົດປຸ່ມ "n" ເພື່ອສ້າງການແບ່ງປັນ ໃໝ່. ຖັດໄປກົດປຸ່ມ“ p” ເພື່ອເຮັດໃຫ້ການແບ່ງປັນ ໃໝ່ ເປັນຫລັກ. ຫລັງຈາກນັ້ນ, ໃຫ້ ກຳ ນົດ ຈຳ ນວນສ່ວນແບ່ງຈາກ 1-4. ຫລັງຈາກນັ້ນທ່ານຈະເລືອກຂະ ໜາດ ຂອງການແບ່ງປັນ. ກົດເຂົ້າທີ່ນີ້. ໃນຂັ້ນຕອນຕໍ່ໄປທ່ານຈະຕ້ອງ ກຳ ນົດຂະ ໜາດ ຂອງພາທິຊັນ.
ຖ້າທ່ານຕ້ອງການໃຊ້ປຸ່ມ disk ທັງ ໝົດ ກົດອີກເທື່ອ ໜຶ່ງ. ຖ້າບໍ່ດັ່ງນັ້ນທ່ານສາມາດຕັ້ງຂະ ໜາດ ຂອງພາທິຊັນ ໃໝ່ ດ້ວຍຕົນເອງ. ເມື່ອພ້ອມກົດ“ w” ເພື່ອຂຽນການປ່ຽນແປງ. ຕອນນີ້ພວກເຮົາຈະຕ້ອງສ້າງລະບົບແຟ້ມເອກະສານ ສຳ ລັບພາທິຊັນ ໃໝ່ ຂອງພວກເຮົາ. ສິ່ງນີ້ສາມາດເຮັດໄດ້ງ່າຍດ້ວຍ:
# mkfs.ext4 /dev/sdb1
ຕອນນີ້ພວກເຮົາຈະຕິດຕັ້ງສ່ວນແບ່ງ ໃໝ່ ຂອງພວກເຮົາໄວ້ໃນໂຟນເດີ. ຂ້ອຍໄດ້ຕັ້ງຊື່ແຟ້ມຂອງຂ້ອຍວ່າ "ssd" ແລະຖືກສ້າງຂື້ນໃນລະບົບຮາກ:
# mkdir /ssd/
ພວກເຮົາພ້ອມແລ້ວທີ່ຈະຕິດຕັ້ງສ່ວນ ໃໝ່ ທີ່ພວກເຮົາຫາກໍ່ສ້າງໄວ້ໃນໂຟນເດີ ໃໝ່:
# mount /dev/sdb1 /ssd/
ທ່ານສາມາດປະຕິບັດການ mount ໃນເວລາເລີ່ມຕົ້ນໂດຍການເພີ່ມເສັ້ນຕໍ່ໄປນີ້ໃນ/etc/fstab file.
/dev/sdb1 /ssd ext3 defaults 0 0
ຕອນນີ້ທ່ານພ້ອມແລ້ວທີ່ຈະຍ້າຍ MySQL ໄປຍັງແຜ່ນດິດ ໃໝ່. ທຳ ອິດຢຸດບໍລິການ MySQL ດ້ວຍ:
# service mysqld stop
ຂ້ອຍຂໍແນະ ນຳ ໃຫ້ທ່ານຢຸດເຊົາການ Apache/nginx ເຊັ່ນດຽວກັນເພື່ອປ້ອງກັນຄວາມພະຍາຍາມໃດໆທີ່ຈະຂຽນໃນຖານຂໍ້ມູນ:
# service httpd stop # service nginx stop
ດຽວນີ້ ສຳ ເນົາ MySQL ທັງ ໝົດ ໃນ drive ໃໝ່:
# cp /var/lib/mysql /ssd/ -Rp
ມັນອາດຈະໃຊ້ເວລາໃນໄລຍະ ໜຶ່ງ ຂື້ນກັບເວບໄຊທ໌ຖານຂໍ້ມູນ MySQL ຂອງທ່ານ. ເມື່ອຂະບວນການນີ້ ສຳ ເລັດການປ່ຽນຊື່ລະບົບ MySQL:
# mv /var/lib/mysql /var/lib/mysql-backup
ຕໍ່ໄປພວກເຮົາຈະສ້າງເອກະສານເຊື່ອມຕໍ່.
# ln -s /ssd/mysql /var/lib/mysql
ຕອນນີ້ທ່ານພ້ອມແລ້ວທີ່ຈະເລີ່ມການບໍລິການ MySQL ແລະເວັບຂອງທ່ານ:
# service mysqld start # service httpd start # service nginx start
ໃນຈຸດນີ້ຖານຂໍ້ມູນ MySQL ຂອງທ່ານຈະຖືກເຂົ້າເບິ່ງຈາກໄດເວີ ໃໝ່.