我是靠谱客的博主 魔幻故事,最近开发中收集的这篇文章主要介绍MySQL 使用MRG_MyISAM存储引擎来实现分表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MRG_MyISAM存储引擎为MySQL的其中一个存储引擎,使用下面语句察看MYSQL数据库是否支持该存储引擎。

mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine                   | Support | Comment                                                                                   | Transactions | XA    | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED               | NO         | Federated MySQL storage engine                                                | NULL             | NULL | NULL          |
| MRG_MYISAM             | YES       | Collection of identical MyISAM tables                                      | NO                | NO    | NO             |
| MyISAM                   | YES       | MyISAM storage engine                                                              | NO                | NO    | NO             |
| BLACKHOLE               | YES       | /dev/null storage engine (anything you write to it disappears) | NO                | NO    | NO             |
| MEMORY                   | YES       | Hash based, stored in memory, useful for temporary tables        | NO                | NO    | NO             |
| CSV                        | YES       | CSV storage engine                                                                  | NO                | NO    | NO             |
| ARCHIVE                  | YES       | Archive storage engine                                                            | NO                | NO    | NO             |
| PERFORMANCE_SCHEMA | YES       | Performance Schema                                                                  | NO                | NO    | NO             |
| InnoDB                   | DEFAULT | Supports transactions, row-level locking, and foreign keys      | YES               | YES   | YES            |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)


MERGE存储引擎,也被认识为MRG_MyISAM引擎,是一个相同的可以被当作一个来用的MyISAM表的集合。“相同”意味着所有表同样的列和索引信息。你不能合并列被以不同顺序列于其中的表,没有恰好同样列的表,或有不同顺序索引的表。而且,任何或者所有的表可以用myisampack来压缩的.

当你创建一个MERGE表之时,MySQL在磁盘上创建两个文件。文件名以表的名字开始,并且有一个扩展名来指明文件类型。一个.frm文件存储表定义,一个.MRG文件包含被当作一个来用的表的名字。这些表作为MERGE表自身,不必要在同一个数据库中。

你可以对表的集合用SELECT, DELETE, UPDATE和INSERT。你必须对你映射到一个MERGE表的这些表有SELECT, UPDATE和DELETE 的权限。

如果你DROP MERGE表,你仅在移除MERGE规格。底层表没有受影响。

当你创建一个MERGE表之时,你必须指定一个UNION=(list-of-tables)子句,它说明你要把哪些表当作一个来用。如果你想要对 MERGE表的插入发生在UNION列表中的第一个或最后一个表上,你可以选择地指定一个INSERT_METHOD选项。使用FIRST或LAST值使得插入被相应地做在第一或最后一个表上。如果你没有指定INSERT_METHOD选项,或你用一个NO值指定该选项。往MERGE表插入记录的试图导致错误。


使用案例:

CREATE TABLE IF NOT EXISTS `table1` (  
`id` int(11) NOT NULL AUTO_INCREMENT,  
`name` varchar(50) DEFAULT NULL,  
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
   
CREATE TABLE IF NOT EXISTS `table2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
   
INSERT INTO `table1` (`name`) VALUES('name1');
   
INSERT INTO `table2` (`name`) VALUES('name2');

CREATE TABLE IF NOT EXISTS `uTable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
INDEX(id)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 UNION=(table1,table2) INSERT_METHOD=LAST AUTO_INCREMENT=1;

select id,name from uTable;
+----+--------+
| id | name    |
+----+--------+
|   1 | name1   |
|   1 | name2   |
+----+--------+
2 rows in set (0.00 sec)

mysql> INSERT INTO `uTable` (`name`) VALUES('name3');
   
mysql> select id, name from table2  
  -> ;  
+----+-------+
| id | name   |
+----+-------+
|   1 | name2 |
|   2 | name3 |
+----+-------+

2 rows in set (0.00 sec)  


--本篇文章转自:http://blog.sina.com.cn/s/blog_83bb57b70101nlho.html



最后

以上就是魔幻故事为你收集整理的MySQL 使用MRG_MyISAM存储引擎来实现分表的全部内容,希望文章能够帮你解决MySQL 使用MRG_MyISAM存储引擎来实现分表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部