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

為MySQL 數據庫換擋加速(2)

編輯:關於MYSQL數據庫

   讓所有的靈活性成為可能的開關是提供給ANSI SQL的MySQL擴展——TYPE參數。MySQL能夠讓你在表格這一層指定數據庫引擎,所以它們有時候也指的是table formats。下面的示例代碼表明了如何創建分別使用MyISAM、ISAM和HEAP引擎的表格。要注意,創建每個表格的代碼是相同的,除了最後的TYPE參數,這一參數用來指定數據引擎。


  CREATE TABLE tblMyISAM (
  id INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (id),
  value_a TINYINT
  ) TYPE=MyISAM
  CREATE TABLE tblISAM (
  id INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (id),
  value_a TINYINT
  ) TYPE=ISAM
  CREATE TABLE tblHeap (
  id INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (id),
  value_a TINYINT
  ) TYPE=Heap


  你也可以使用ALTER TABLE命令,把原有的表格從一個引擎移動到另一個引擎。下面的代碼顯示了如何使用ALTER TABLE把MyISAM表格移動到InnoDB的引擎:


  ALTER TABLE tblMyISAM CHANGE TYPE=InnoDB


  MySQL用三步來實現這一目的。首先,這個表格的一個副本被創建。然後,任何輸入數據的改變都被排入隊列,同時這個副本被移動到另一個引擎。最後,任何排入隊列的數據改變都被送交到新的表格裡,而原來的表格被刪除。

  ALTER TABLE捷徑

  如果只是想把表格從ISAM更新為MyISAM,你可以使用MySQL_convert_table_format命令,而不需要編寫ALTER TABLE表達式。

  你可以使用SHOW TABLE命令(這是MySQL對ANSI標准的另一個擴展)來確定哪個引擎在管理著特定的表格。SHOW TABLE會返回一個帶有多數據列的結果集,你可以用這個結果集來查詢獲得所有類型的信息:數據庫引擎的名稱在Type字段裡。下面的示例代碼說明了SHOW TABLE的用法:


  SHOW TABLE STATUS FROM tblInnoDB


  SHOW TABLE的替換方法

  你可以用SHOW CREATE TABLE [TableName]來取回SHOW TABLE能夠取回的信息。最後,如果你想使用沒有被編譯成MySQL也沒有被激活的引擎,那是沒有用的,MySQL不會提示這一點。而它只會給你提供一個缺省格式(MyISAM)的表格。除了使用缺省的表格格式外,還有辦法讓MySQL給出錯誤提示,但是就現在而言,如果不能肯定特定的數據庫引擎是否可用的話,你要使用SHOW TABLE來檢查表格格式。

  更多的選擇意味著更好的性能

  用於特定表格的引擎都需要重新編譯和追蹤,考慮到這種的額外復雜性,為什麼你還是想要使用非缺省的數據庫引擎呢?答案很簡單:要調整數據庫來滿足你的要求。

  可以肯定的是,MyISAM的確快,但是如果你的邏輯設計需要事務處理,你就可以自由使用支持事務處理的引擎。進一步講,由於MySQL能夠允許你在表格這一層應用數據庫引擎,所以你可以只對需要事務處理的表格來進行性能優化,而把不需要事務處理的表格交給更加輕便的MyISAM引擎。對於MySQL而言,靈活性才是關鍵。

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