查看mysql数据库的默认引擎及 修改默认引擎
2013-01-16 16:07
501 查看
原文来自:http://blog.csdn.net/jscpb/article/details/7199319
在修改默认引擎之前,最好了解mysql读取配置文件my.cnf的顺序,以及mysql的目录结构 --默认basedir=/usr ,datadir=/var/lib/mysql,/etc/my.cnf
配置文件读取顺序详见另一篇帖子。
1.查看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 |
+--------------------+---------+----------------------------------------------------------------+--------------+------+--------
MySQL-5.5.19-1.linux2.6.i386的默认引擎为InnoDB。
2.设置mysql的默认存储引擎
编辑my.cnf配置文件,在服务器端配置信息[mysqld]下面添加:
default-storage-engine = MyISAM
即可设置mysql数据库的默认引擎为MyISAM
3.设置当前会话的默认存储引擎
SET storage_engine=InnoDB;
即可以设置当前会话连接的默认存储引擎为InnoDB。
4.指定表的存储引擎
如:
create table t_innodb( id int(3) )
engine = innodb;
然后使用
mysql> show table status like 't_i%'\G;
查看表的详细信息。
5.修改表的存储引擎
ALTER TABLE t_name ENGINE = innodb;
修改表的存储引擎时,会重建表,结构文件、数据文件、索引文件等文件。
如果转化为myisam存储引擎,mysql会在datadir/db_name/目录下,生成临时表结构文件(.frm),临时数据文件(.MYD),临时索引文件(.MYI)。此处需要注意的是,myisam类型转换时,生成的.MYI索引文件比数据文件要大很多(这与mysql数据库索引的结构有关,B-Tree结构)(如果捕捉不到临时文件,请让表的数据量达到6位数)在数据文件目录下的表所在的库目录下运行:
while [ 1 ] ; do ls -l | grep -i '\#sql'; done)
如果转化为innodb存储引擎,因为innodb引擎默认使用共享表空间,数据文件、索引文件存储在ibdata1文件里面。
只有和innodb引擎有关的转化时,mysql数据库才会对ibdata1里面的data dictionary进行更新操作,删除旧的表信息,添加新的表信息。
在修改默认引擎之前,最好了解mysql读取配置文件my.cnf的顺序,以及mysql的目录结构 --默认basedir=/usr ,datadir=/var/lib/mysql,/etc/my.cnf
配置文件读取顺序详见另一篇帖子。
1.查看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 |
+--------------------+---------+----------------------------------------------------------------+--------------+------+--------
MySQL-5.5.19-1.linux2.6.i386的默认引擎为InnoDB。
2.设置mysql的默认存储引擎
编辑my.cnf配置文件,在服务器端配置信息[mysqld]下面添加:
default-storage-engine = MyISAM
即可设置mysql数据库的默认引擎为MyISAM
3.设置当前会话的默认存储引擎
SET storage_engine=InnoDB;
即可以设置当前会话连接的默认存储引擎为InnoDB。
4.指定表的存储引擎
如:
create table t_innodb( id int(3) )
engine = innodb;
然后使用
mysql> show table status like 't_i%'\G;
查看表的详细信息。
5.修改表的存储引擎
ALTER TABLE t_name ENGINE = innodb;
修改表的存储引擎时,会重建表,结构文件、数据文件、索引文件等文件。
如果转化为myisam存储引擎,mysql会在datadir/db_name/目录下,生成临时表结构文件(.frm),临时数据文件(.MYD),临时索引文件(.MYI)。此处需要注意的是,myisam类型转换时,生成的.MYI索引文件比数据文件要大很多(这与mysql数据库索引的结构有关,B-Tree结构)(如果捕捉不到临时文件,请让表的数据量达到6位数)在数据文件目录下的表所在的库目录下运行:
while [ 1 ] ; do ls -l | grep -i '\#sql'; done)
如果转化为innodb存储引擎,因为innodb引擎默认使用共享表空间,数据文件、索引文件存储在ibdata1文件里面。
只有和innodb引擎有关的转化时,mysql数据库才会对ibdata1里面的data dictionary进行更新操作,删除旧的表信息,添加新的表信息。
相关文章推荐
- 查看mysql数据库的默认引擎及 修改默认引擎
- 查看和修改Mysql数据库建表的时候默认的存储引擎
- 修改mysql数据库默认存储引擎和默认编码
- 修改mysql数据库默认存储引擎和默认编码
- MySQL数据库默认编码查看/修改
- 查看并修改mysql的默认引擎
- mysql数据库表修改的默认引擎
- 查看和修改MySQL数据库表存储引擎
- 查看和设置MySQL数据库字符集(转) (默认情况下,mysql的字符集是latin1(ISO_8859_1)(注:MySQL5.6不能用此方法修改字符编码)
- Centos6.8 查看、修改MySQL数据库引擎
- MySQL数据库默认编码查看/修改
- 修改mysql数据库默认存储引擎和默认编码
- 查看mysql 默认端口号和修改端口号
- 修改及查看mysql数据库的字符集
- 修改及查看mysql数据库的字符集
- 修改MySQL的默认数据存储引擎
- ORACLE创建表空间、创建用户、更改用户默认表空间以及授权、查看权限(修改表空间大小)
- 查看数据库 存储引擎以及默认引擎
- 查看mysql数据库使用大小和mysql修改时间
- xampp默认mysql数据库root密码的修改