MySQL5新特点(跨存储类式数据库表)
时间:2007-02-17 来源:PHP爱好者
目前一个特定的事实是,企业数据继续散布在企业的各个地方,这些数据可能以不同存储类型的数据库表的形式存在,数据库 管理人员为了管理远程服务器上的数据库对象时,经常需要登录不同的物理服务器才能实现。而"跨类联合存储式数据库表"这一MySQL5的新技术使得几个分布在不同的物理位置的数据库,可以成为单一的逻辑数据库形式,呈现在最终用户的面前,从而 简化了对全部数据库的访问。
MySQL5推出的跨类联合存储式数据库表(federated tables)可以将存放在不同数据库服务器 上的数据库对象作联结,然后生成一个或多个逻辑数据库,任何类型的存储引擎都作为federated table定义的目标,而且这些 定义完全支持SELECT,INSERT,UPDATE,和DELETE等已存在的功能。下图是MySQL5支持的不同类型的存储引擎示意:
举例来说,假定下面格式的表存储在一台Linux服务器上:
如果数据库管理人员希望在运行着不同数据库的 windows服务器上来参考上面的存放在linux服务器上的数据库,就可以通过定义下面的federated table来实现:mysql> CREATE TABLE client ( -> client_id int(11) NOT NULL, -> client_first_name varchar(20) NOT NULL, -> client_last_name varchar(40) NOT NULL, -> client_gender char(1) NOT NULL, -> client_year_of_birth int(4) NOT NULL, -> client_marital_status varchar(20) default NULL, -> client_street_address varchar(40) NOT NULL, -> client_postal_code varchar(10) NOT NULL, -> client_city varchar(30) NOT NULL, -> client_state_province varchar(40) NOT NULL -> client_phone_number varchar(25) NOT NULL, t NULL, -> client_household_income bigint(30) default NULL, -> client_country varchar(40) default NULL, -> broker_id int(11) NOT NULL) ENGINE=FEDERATED -> COMMENT = -> 'mysql://myuser:[email protected]:3306/gim/client'; Query OK, 0 rows affected (0.20 sec) mysql> select count(*) from client; ---------- | count(*) | ---------- | 5600 | ---------- 1 row in set (0.50 sec)以上显示了federated table表的用处
php爱好者站 http://www.phpfans.net Linux|Apache|IIS.
MySQL5推出的跨类联合存储式数据库表(federated tables)可以将存放在不同数据库服务器 上的数据库对象作联结,然后生成一个或多个逻辑数据库,任何类型的存储引擎都作为federated table定义的目标,而且这些 定义完全支持SELECT,INSERT,UPDATE,和DELETE等已存在的功能。下图是MySQL5支持的不同类型的存储引擎示意:
举例来说,假定下面格式的表存储在一台Linux服务器上:
如果数据库管理人员希望在运行着不同数据库的 windows服务器上来参考上面的存放在linux服务器上的数据库,就可以通过定义下面的federated table来实现:mysql> CREATE TABLE client ( -> client_id int(11) NOT NULL, -> client_first_name varchar(20) NOT NULL, -> client_last_name varchar(40) NOT NULL, -> client_gender char(1) NOT NULL, -> client_year_of_birth int(4) NOT NULL, -> client_marital_status varchar(20) default NULL, -> client_street_address varchar(40) NOT NULL, -> client_postal_code varchar(10) NOT NULL, -> client_city varchar(30) NOT NULL, -> client_state_province varchar(40) NOT NULL -> client_phone_number varchar(25) NOT NULL, t NULL, -> client_household_income bigint(30) default NULL, -> client_country varchar(40) default NULL, -> broker_id int(11) NOT NULL) ENGINE=FEDERATED -> COMMENT = -> 'mysql://myuser:[email protected]:3306/gim/client'; Query OK, 0 rows affected (0.20 sec) mysql> select count(*) from client; ---------- | count(*) | ---------- | 5600 | ---------- 1 row in set (0.50 sec)以上显示了federated table表的用处
php爱好者站 http://www.phpfans.net Linux|Apache|IIS.
相关阅读 更多 +