一、查看表的详细状态
mysql> show table status like '表名';
Name | Engine | rows | Auto_increament |
---|---|---|---|
user | InnoDB | 10 | 11 |
注释:engine 表示是该表使用的存储引擎
二、InnoDB存储引擎
InnoDB的数据存储在表空间中,采用MVCC(可以理解位row lock 的变种)来支持高并发,并且实现了四个隔离级别,默认的隔离级别式repeatable read ,并通过间隙锁(next-key locking)策略来防止幻读的出现,InooDB表式基于聚簇索引建立的,该索引对主键查询有很高的性能,
知识链接:MVCC和悲观锁的介绍
三、MyISAM存储引擎
MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但是MyISAM不支持事务和行级锁,而且在崩溃后无法进行安全恢复。MyISAM会将表存储在两个文件中:数据文件(.MYD)和索引文件(.MYI)
MyISAM支持:加锁与并发(没有InnoDB采用MVCC的效率高)、恢复(mysql可以对此类表手工或自动执行检查和修复)、索引、延迟更新索引键(极大的增强了写入性能)。
四、Archive存储引擎
Archive只支持insert和select操作,Archive引擎会缓存所有的写并利用zlib对插入的行进行压缩,索引比MyISAM表的磁盘I/O更少,当是每次select查询式都会进行全表扫描。
使用场景:日志和数据采集类应用、需用进行快速insert操作的场合。
五、Memory存储引擎
1.memory存储引擎相比前面的一些存储引擎,有点不一样,其使用存储在内从中的数据来创建表,而且所有的数据也都存储在内存中。
2.每个基于memory存储引擎的表实际对应一个磁盘文件,该文件的文件名和表名是相同的,类型为.frm。该文件只存储表的结构,而其数据文件,都是存储在内存中,这样有利于对数据的快速处理,提高整个表的处理能力。
3.memory存储引擎默认使用哈希(HASH)索引,其速度比使用B-+Tree型要快,如果读者希望使用B树型,则在创建的时候可以引用。
4.memory存储引擎文件数据都存储在内存中,如果mysqld进程发生异常,重启或关闭机器这些数据都会消失。所以memory存储引擎中的表的生命周期很短,一般只使用一次。
六、修改表的存储引擎
mysql> alter talbe [表名] engine=[存储引擎];
注释[存储引擎]: inoodb 、myisam 、archive......
七、修改表的存储类型
mysql>alter table [表名] convert to character set 'utf-8';
网友评论