程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL中的FEDERATED引擎,mysqlfederated引擎

MySQL中的FEDERATED引擎,mysqlfederated引擎

編輯:MySQL綜合教程

MySQL中的FEDERATED引擎,mysqlfederated引擎


首先說明》     FEDERATED存儲引擎訪問在遠程數據庫的表中的數據,而不是本地的表。這個特性給某些開發應用帶來了便利,你可以直接在本地構建一個federated表來連接遠程數據表,配置好了之後本地表的數據可以直接跟遠程數據表同步。實際上這個引擎裡面是不真實存放數據的,所需要的數據都是連接到其他MySQL服務器上。   使用操作》 首先修正mysql的my.ini文件,開啟FEDERATED引擎操作其上步驟,新建出來的表就是鏈接到了192.168.84.73:3306/kmsong/km_tbl_companycffsong這個表,本身只是一個空殼,只能進行數據的增刪改查操作,不能改變鏈接到的表的表結構,如果改變自身的表結構會出現意想不到的錯誤。     一些注意事項》

1. 對本地虛擬表的結構修改,並不會修改遠程表的結構 
2.truncate 命令,會清除遠程表數據 
3.  drop命令只會刪除虛擬表,並不會刪除遠程表

4.  不支持 alter table 命令 

目前使用federated 最大的缺點: 
1. select count(*), select * from limit M, N 等語句執行效率非常低,數據量較大時存在很嚴重的問題,但是按主鍵或索引列查詢,則很快,如以下查詢就非常慢(假設 id 為主索引) 
select id from db.tablea where id >100 limit 10 ;

而以下查詢就很快: 
select id from db.tablea where id >100 and id<150

 

2.  如果虛擬虛擬表中字段未建立索引,而實體表中為此字段建立了索引,此種情況下,性能也相當差。但是當給虛擬表建立索引後,性能恢復正常。

 

3. 類似 where name like "str%" limit 1 的查詢,即使在 name 列上創建了索引,也會導致查詢過慢,是因為

federated引擎會將所有滿足條件的記錄讀取到本,再進行 limit 處理。

 

這幾個問題已經嚴重影響了federated 在實際環境中的應用,所以這個引擎很冷門,不過在一些特定環境還是能用用的。

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