码迷,mamicode.com
首页 > 数据库 > 详细

MySQL存储引擎

时间:2018-01-30 00:15:39      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:结构   执行   int   nes   管理   char   def   pre   需要   

MySQL存储引擎
作为可插拔式的组件提供:
-负责为数据库执行实际的数据I/O操作,不同的存储引擎,其存储数据的方式也不同。
-用户通过连接访问MySQL数据库,根据实际需要选用何种存储引擎,避免大的编码更改。

默认的存储引擎:
-MySQL 5.0/5.1 ---> MyISAM
-MySQL 5.5/5.6 ---> InnoDB

列出可用的存储引擎类型:
格式:SHOW ENGINES;
或SHOW ENGINES\G

修改表的存储引擎:
建表时,使用默认存储引擎。
-SHOW CREATE TABLE xxx\G; 可查看

例:
mysql>create table ku.abc(
>id int(4),
>name char(5)
>) engine=innodb;

mysql>show create table ku.abc\G;

更改现有表的存储引擎:
-使用ALTER TABLE 改变引擎设置。
mysql>alter table ku.abc engine=myisam;
msyql>show create table ku.abc\G;

设置默认存储引擎:
修改配置文件/etc/my.cnf
vim /etc/my.cnf
[mysqld]
....
default-storage-engine=InnoDB

service mysql restart

存储引擎的特点
MyISAM存储引擎的主要热点:
1.支持表级锁定,不支持行级锁定。
2.不支持事务
3.不享表空间
4.多用在查询、插入操作较多的表。

相关的表文件:
表.MYI 存放索引信息
表.MYD 存放数据
表.frm 存放表结构

InnoDB存储引擎主要特点:
1.支持表级/行级锁定
2.支持事务、事务回滚、支持外键
3.共享表空间

注释:
锁的作用:解决并发访问冲突问题。
事务: 一次数据访问从开始到结束的过程 称为事务
事务回滚: 一次数据访问 任意一步执行失败,恢复所有操作。
事务的特性: 一致性 原子性 隔离性
事务日志文件:记录对innodb存储引擎的表执行过的操作。

相关的表文件:
表.frm 存放表结构
表.ibd 存放索引信息+数据
ibdsta1
ib_logfile0 、ib_logfile1

接收写操作多的表适合使用innodb存储引擎。
接收读操作多的表适合使用myisam存储引擎。

锁粒度:
1.表级锁:一次直接对整张表进行加锁。
2.行级锁:只锁定某一行
3.页级锁:对整个页面(MySQL管理数据的基本存储单位)进行加锁。

锁类型:
1.读锁(共享锁):支持并发读。
2.写锁(互斥锁、排它锁):是独占锁,上锁期间其它线程不能读表或写表。

查看当前的锁状态:
-检查Table_lock开头的变量,%作通配符。
mysql>SHOW STATUS LIKE "Table_lock%"

MySQL存储引擎

标签:结构   执行   int   nes   管理   char   def   pre   需要   

原文地址:http://blog.51cto.com/13399294/2066614

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!