--在不同的路徑下指定分區表的不同分區位置 mysql> create table t_partition(id int,name varchar(30),adate date) engine=myisam -> partition by list(year(adate)) -> ( -> PARTITION p1999 VALUES IN (1995, 1999, 2003) -> DATA DIRECTORY = '/appdata/95/data' -> INDEX DIRECTORY = '/appdata/95/idx', -> PARTITION p2000 VALUES IN (1996, 2000, 2004) -> DATA DIRECTORY = '/appdata/96/data' -> INDEX DIRECTORY = '/appdata/96/idx', -> PARTITION p2001 VALUES IN (1997, 2001, 2005) -> DATA DIRECTORY = '/appdata/97/data' -> INDEX DIRECTORY = '/appdata/97/idx', -> PARTITION p2002 VALUES IN (1998, 2002, 2006) -> DATA DIRECTORY = '/appdata/98/data' -> INDEX DIRECTORY = '/appdata/98/idx' -> ) ; Query OK, 0 rows affected (0.11 sec)
mysql> insert into t_partition values(100,'Neo',date'2016-04-12'); ERROR 1526 (HY000): Table has no partition for value 2016 mysql> insert into t_partition values(100,'Neo',date'1995-04-12'); Query OK, 1 row affected (0.00 sec)
mysql> select * from t_partition; +------+------+------------+ | id | name | adate | +------+------+------------+ | 100 | Neo | 1995-04-12 | | 200 | Tom | 1997-04-12 | +------+------+------------+ 2 rows in set (0.06 sec)
[root@localhost data]# ls /appdata/95/data/ t_partition#P#p1999.MYD [root@localhost data]# ls /appdata/95/idx/ t_partition#P#p1999.MYI [root@localhost data]# ls /appdata/97/data/ t_partition#P#p2001.MYD [root@localhost data]# ls /appdata/97/idx/ t_partition#P#p2001.MYI [root@localhost data]# ls /appdata/98/idx/ t_partition#P#p2002.MYI [root@localhost data]# ls /appdata/98/data t_partition#P#p2002.MYD
--查看創建的數據文件,.frm文件存放表結構文件,.MYI文件存放索引文件,.MYD文件存放數據文件 [root@localhost fire]# ls -trl total 656 -rw-rw----. 1 mysql mysql 8556 Apr 12 00:28 t_myd2.frm -rw-rw----. 1 mysql mysql 1024 Apr 12 00:28 t_myd2.MYI -rw-rw----. 1 mysql mysql 0 Apr 12 00:28 t_myd2.MYD
MEMORY存儲引擎
將所有的數據存放在內存(RAM)中,應用的場景:非關鍵數據實現快速訪問。這個存儲引擎原來被稱為HEAP引擎。它的應用場合在減少,因為InnoDB可以通過buffer pool memory將大多數的數據保留在內存中,并且更加的可靠安全;同時NDBCLUSTER對大的數據集提供了基于鍵值的快速查詢。
--查看數據文件中生成的表結構文件(.frm)、元數據文件(.CSM)和表數據文件(.CSV) [root@localhost firedb]# ls -trl total 172 -rw-rw----. 1 mysql mysql 8582 Apr 9 19:09 t_csv1.frm -rw-rw----. 1 mysql mysql 35 Apr 9 19:11 t_csv1.CSM -rw-rw----. 1 mysql mysql 12 Apr 9 19:11 t_csv1.CSV
--查看創建的表文件,表的定義文件是.frm文件,實際存放數據的文件是.ARZ文件 [root@localhost fire]# ls -trl total 640 -rw-rw----. 1 mysql mysql 13552 Apr 12 00:05 t_arc1.frm -rw-rw----. 1 mysql mysql 68904 Apr 12 00:05 t_arc1.ARZ
[root@localhost firedb]# ls -trl total 804 -rw-rw----. 1 mysql mysql 8582 Apr 10 07:10 t_mg1.frm -rw-rw----. 1 mysql mysql 8582 Apr 10 07:10 t_mg2.frm -rw-rw----. 1 mysql mysql 2048 Apr 10 07:11 t_mg1.MYI -rw-rw----. 1 mysql mysql 120 Apr 10 07:11 t_mg1.MYD -rw-rw----. 1 mysql mysql 2048 Apr 10 07:13 t_mg2.MYI -rw-rw----. 1 mysql mysql 120 Apr 10 07:13 t_mg2.MYD -rw-rw----. 1 mysql mysql 8582 Apr 10 07:15 t_mer1.frm -rw-rw----. 1 mysql mysql 12 Apr 10 07:15 t_mer1.MRG
--在目標端創建表 mysql> create table poll_vote(id int(10) not null auto_increment,parents_id int(10) not null, -> vote_count mediumint(10) not null default 0,vote_month_count mediumint(10) not null default 0, -> vote_month mediumint(10) not null,primary key(id),unique key ind_poll_vote_baike(parents_id,vote_month)) -> engine=innodb auto_increment=26020 default charset=latin1; Query OK, 0 rows affected (0.03 sec) mysql> insert into poll_vote(parents_id,vote_count,vote_month_count,vote_month) values(10,100,100,100); Query OK, 1 row affected (0.07 sec)
--在源端創建表,結構和目標端的表結構一致 mysql> create table poll_vote(id int(10) not null auto_increment,parents_id int(10) not null, -> vote_count mediumint(10) not null default 0,vote_month_count mediumint(10) not null default 0, -> vote_month mediumint(10) not null,primary key(id),unique key ind_poll_vote_baike(parents_id,vote_month)) -> engine=federated auto_increment=26020 default charset=latin1 -> connection='mysql://test:System#2013@192.168.78.137/fire/poll_vote'; Query OK, 0 rows affected (0.08 sec) mysql> select * from poll_vote; +-------+------------+------------+------------------+------------+ | id | parents_id | vote_count | vote_month_count | vote_month | +-------+------------+------------+------------------+------------+ | 26020 | 10 | 100 | 100 | 100 | +-------+------------+------------+------------------+------------+ 1 row in set (2.01 sec)
--當你創建了一張FEDERATED表時,表的定義文件(.frm文件)會存在于本地,表的實際數據文件則存放在遠程數據庫服務器。 --查看創建出來的表 [root@localhost fire]# ls -trl total 28 -rw-rw----. 1 mysql mysql 61 Apr 11 07:06 db.opt -rw-rw----. 1 mysql mysql 8736 Apr 11 19:39 poll_vote.frm