提问:Merge引擎的表,不能有两个索引? 手册上也没明确说明但我就是无法建立1个以上的索引。是版本问题还是本身就不允许? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以啊,你是如何建的?建议你可以先测试一下如下语句。mysql> CREATE TABLE t1 ( -> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> f int, -> message CHAR(20), -> index (f)) ENGINE=MyISAM;Query OK, 0 rows affected (0.02 sec)mysql> CREATE TABLE t2 ( -> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> f int, -> message CHAR(20), -> index (f)) ENGINE=MyISAM;Query OK, 0 rows affected (0.05 sec)mysql> CREATE TABLE total ( -> a INT NOT NULL AUTO_INCREMENT, -> f int, -> message CHAR(20), INDEX(a),index(f)) -> ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;Query OK, 0 rows affected (0.06 sec)mysql> select * from t1;+---+------+---------+| a | f | message |+---+------+---------+| 1 | 1 | Testing || 2 | 2 | table || 3 | 3 | t1 |+---+------+---------+3 rows in set (0.00 sec)mysql> select * from t2;+---+------+---------+| a | f | message |+---+------+---------+| 1 | 1 | Testing || 2 | 2 | table || 3 | 3 | t2 |+---+------+---------+3 rows in set (0.00 sec)mysql> select * from total;+---+------+---------+| a | f | message |+---+------+---------+| 1 | 1 | Testing || 2 | 2 | table || 3 | 3 | t1 || 1 | 1 | Testing || 2 | 2 | table || 3 | 3 | t2 |+---+------+---------+6 rows in set (0.00 sec)mysql> 因为merge 本身什么都没有,只有一个表定义。 测试了一下,MergE表确实无法建立索引 呵呵,我是在建立完表后,再CREATE INDEX的 OMG终于成了不止是索引结构要完全一致,而且建索引的顺序也要完全一致!!! mysql查询语句 请问mysql怎么关闭查询缓存 mysql 存储过程 的PHP调用 多表连接这个表该如何优化 查询视图快还是连表查询快? 如何恢复mysql数据 按汉字首字字母分组查询 如何从最新的100个产品中随机选出5个来 between and 这个命令能否表示2004-04-03<a<204-05-06 MYSQL CLUSTER VS MYCAT,哪个更好? merge能否自动建立子表 mysql数据备份出来汉字是乱码
-> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> f int,
-> message CHAR(20),
-> index (f)) ENGINE=MyISAM;
Query OK, 0 rows affected (0.02 sec)mysql> CREATE TABLE t2 (
-> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> f int,
-> message CHAR(20),
-> index (f)) ENGINE=MyISAM;
Query OK, 0 rows affected (0.05 sec)mysql> CREATE TABLE total (
-> a INT NOT NULL AUTO_INCREMENT,
-> f int,
-> message CHAR(20), INDEX(a),index(f))
-> ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;
Query OK, 0 rows affected (0.06 sec)mysql> select * from t1;
+---+------+---------+
| a | f | message |
+---+------+---------+
| 1 | 1 | Testing |
| 2 | 2 | table |
| 3 | 3 | t1 |
+---+------+---------+
3 rows in set (0.00 sec)mysql> select * from t2;
+---+------+---------+
| a | f | message |
+---+------+---------+
| 1 | 1 | Testing |
| 2 | 2 | table |
| 3 | 3 | t2 |
+---+------+---------+
3 rows in set (0.00 sec)mysql> select * from total;
+---+------+---------+
| a | f | message |
+---+------+---------+
| 1 | 1 | Testing |
| 2 | 2 | table |
| 3 | 3 | t1 |
| 1 | 1 | Testing |
| 2 | 2 | table |
| 3 | 3 | t2 |
+---+------+---------+
6 rows in set (0.00 sec)mysql>