Mysql
 sql >> база данни >  >> RDS >> Mysql

Проверете и оптимизирайте MySQL база данни автоматично с Crontab/Cron

MySQL е много популярна безплатна, но мощна система за бази данни. Но дори и в страхотни бази данни, таблиците могат да бъдат фрагментирани с излишни разходи поради непрекъснато актуализиране или операция за изтриване и вмъкване на данни, съхранявани в базата данни. Освен това има вероятност базите данни да се повредят. По този начин извършването на здравна проверка на базата данни и редовното оптимизиране на MySQL сървъра е важна задача.

Малко е обезпокоително, ако администраторите на база данни трябва да влизат в сървъра или да стартират phpMyAdmin, за да оптимизират базите данни една по една или таблица по таблица ръчно. Понякога администраторът на DB може просто да забрави да свърши работата или да зададе честотата на оптимизация на по-малко времена. Препоръчително е всички таблици в MySQL бази данни да се проверяват поне веднъж на ден на натоварен сървър.

Възможно е да се автоматизира оптимизацията на MySQL процеса чрез използване на функцията crontab в Linux/Unix/CentOS/FreeBSD. Задачата на cron за проверка и оптимизиране на MySQL бази данни може да бъде създадена с помощта на клиентската програма mysqlcheck, която идва с инсталацията на MySQL. mysqlcheck клиентът може да проверява, поправя, оптимизира и анализира таблици в MySQL база данни.

За да създадете нова задача за cron, влезте в сървъра като root или всеки друг потребител и след това редактирайте файла crontab (в повечето операционни системи, crontab -e ще отвори файл crontab в текстов редактор по подразбиране), за да добавите в следващия ред текст. За потребители, използващи cPanel, щракнете върху „Cron job“, където можете да настроите crontab на ежедневен, почасов и друг интервал. Опитните уеб администратори могат също да настроят crontab файл в rc.hourly или rc.daily или друга директория на cron. Обърнете внимание, че ако влезете като MySQL или нормален потребител без права за достъп до цялата база данни, не е възможно да оптимизирате всички бази данни, освен ако потребителският идентификатор и паролата за root не са посочени, както в примера по-долу.

0 1 * * * mysqlcheck -Aao --auto-repair -u root -p[password] > /dev/null

Горният израз има синтаксис, подобен на „mysqlcheck [опции] –all-databases“, където параметърът –all-databases е действието по подразбиране, не е посочена база данни, така че може да бъде пропуснато. Командата ще стартира mysqlcheck клиента за автоматично анализиране и оптимизиране на всички бази данни в 1 часа сутринта всеки ден. Имайте предвид, че няма интервал между -p и вашата парола за root. Можете да промените времето за изпълнение според вашите предпочитания, както и да промените опциите за командата mysqlcheck. Ако просто искате да проверите и оптимизирате определени бази данни или определени таблици без базата данни, използвайте следния синтаксис:

mysqlcheck [options] db_name [tables]
mysqlcheck [options] --databases DB1 [DB2 DB3...]

Може да искате да премахнете превключвателя –auto-repair от горната команда, тъй като операцията за възстановяване на таблица може да причини загуба на данни при някои обстоятелства, операцията поради причини включва, но не се ограничава до грешки във файловата система. За тези, които са променили набора от знаци и съпоставянето на MySQL бази данни може също да се наложи да използват опцията –default-character-set. Повече информация за всички налични превключватели и опции можете да намерите тук.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да затворя sqlalchemy връзка в MySQL

  2. Деактивирайте Root Login в phpMyAdmin

  3. Трябва ли да се предпазя от SQL инжекция, ако използвам падащо меню?

  4. Как да съхранявате няколко опции в една таблица?

  5. Как да променя MySQL колона, за да разреша NULL?