程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL 數據庫規范化設計(1)

MySQL 數據庫規范化設計(1)

編輯:關於MYSQL數據庫

  建立一個數據庫表維護規范
  在一個定期基礎而非等到問題出現才實施數據庫表的檢查是一個好主意。應該考慮到建立一個預防性維護的時間表,以協助自動問題,是你可以采取措施進行修正:

  執行常規的數據庫備份並允許更新日志。

  安排定期的常規表檢查。通過檢查表,將減少使用備份的機會。這個工作,在Windows下使用計劃任務,Unix使用cron作業(一般從運行服務器所示用的該帳號的crontab文件中調用),並且很容易實現。

  例如,你作為mysql用戶運行服務器,則可以從MySQL的crontab文件中建立定期檢查。如果你不知道如何使用cron,應使用下列命令查看相關的Unix手冊頁:

         $man cron
  $man crontab
 
  作為服務器啟動前的系統引導期間檢查數據庫表。及其可能會因早期的崩潰而重新啟動。如果這樣的花,數據庫表可能已被毀壞,應該對它進行徹底檢查。

  創建一個適用於定期維護的腳本

  為了運行自動的表檢查,可以編寫一個腳本,將目錄改變為服務器數據目錄並對所有的數據庫表進行myisamchk和isamchk。如果你只有MyISAM表或者只有ISAM表,則只需要其中一個程序,可以將無關的那個程序從腳本中注釋掉。

  該教本可以被cron調用,或者在系統啟動期間被調用。

  為維護目的,你能使用myisamchk -s檢查桌子。-s,--silent選項使myisamchk和isamchk以沉默模式運行,只有當錯誤出現時,才僅僅打印消息。另外myisamchk支持--fast選項,該選項允許程序跳過自上次檢查以來沒有被修改過的人和表。

  1. 一個簡單的腳本

  例如,一個較為容易理解的簡單腳本,它在服務器目錄中檢查所有表(DATADIR應該修改成對應你系統的合適的值):

         #!/bin/sh
      cd DATADIR

      myisamchk --silent --fast */*.MYIi

      samchk --silent */*.ISM
 
  2. 一個較為復雜的腳本

  實用此腳本的一個潛在的問題時:如果有許多表,通配符模式‘*/*.MYI’和‘*/*.ISM’可能會由於“too many arguments(參數過多)”或者命令行超過shell允許的長度而無法使用。腳本可以進一步修改為(同樣,DATADIR修改為適合你系統上的值):

         #!/bin/sh
      datadir=DATADIR

       find $dtatdir –name “*. MYI” -print | xargs myisamchk --silent --fast

       find $dtatdir –name “*. ISM” -print | xargs isamchk --silent
 
  當然你也可以在腳本中指定多個數據庫目錄。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved