不同的存储引擎,表的存储方式不同
查看该表的存储引擎的sql语句为:show create table 表名.
在建表的时候可以指定存储引擎和字符编码方式.
例如:
在engine=后面添加自己想要的存储引擎,在charset后面添加字符编码方式.
mysql默认的存储引擎是InnoDB.
mysql默认的字符编码方式是utf8.
查看mysql支持的存储引擎的sql语句:show engines \g,支持或不支持看mysql当前的版本;
查看mysql的版本的方法:1.select version();2.在命令行窗口输入mysql -V
mysql支持九大存储引擎,版本不同支持情况不同.
mysql常用的存储引擎:
1.MyISAM存储引擎(不支持事务机制)
它管理的表具有以下特征:
使用3个文件表示每张表,
格式文件---存储表结构的定义(mytable.frm).
数据文件---存储表行的内容(mytable.MYD).
索引文件---存储表上的索引(mytable.MYI).
优点:可被转换为压缩.只读表来节省空间.
对于一张表,只要是主键或者加有unique约束的字段上会自动创建索引.
2.InnoDB存储引擎
这是mysql的默认存储引擎.
InnoDB支持事务,支持数据库崩溃后自动恢复机制.
InnoDB存储引擎最主要的特点是:非常安全.
它管理的表具有下列的主要特征:
每个InnoDB表在数据库目录中以.frm格式文件表示.
InnoDB表空间tablespace 被用于存储表中的内容.
用commit,savepoint,rollback支持事务处理.
提供全ACID兼容.
在mysql服务器崩溃后提供自动恢复.
InnoDB最大的特点就是支持事务,以保证数据的安全,但效率不是很高,并且也不能压缩,不能转换为只读,不能很好的节省存储空间.
3. MEMORY存储引擎
使用 MEMORY存储引擎的表,其数据存储在内存中,且行的长度固定.
这两个特定点使得 MEMORY存储引擎非常快.
MEMORY引擎优点:查询效率是最高的,不需要和硬盘交互.
MEMORY引擎缺点:不安全,关机之后数据消失,因为数据和索引都是在内存当中.