--在不同的路径下指定分区表的不同分区位置 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