mysql的简单介绍
数据库的内部链接
1)连接管理器:用户或应用程序连接 2)分析器`3)缓存区 4)优化器:优化器执行的结果交由存储引擎,再转向物理层
表空间:
Myisam每个表有三个文件:frm (表结构); myd(表数据);myi(表索引)
Innodb:所有表空间再一个文件
数据库失败的原因
1)此前的服务没有关闭
2)数据库初始化失败
3)数据目录位置有错误
4)数据目录路权限问题
并发控制
1)多版本并发控制:
并不直接在数据库中修改,可以建立快照,用户在快照上进行修改,并加以时间戳,最后合并到原数据
2)锁:
读:共享锁
写:独占锁
Mysql服务器仅支持表级锁,行锁需要在存储引擎完成
索引
优点:加快数据的检索速度
创建唯一性的索引,保证数据库表的每一行的数据的唯一性
加速表和表的连接
缺点:索引需要物理空间
三种常用的索引:唯一索引,主健索引,和聚集索引
Innodb引擎表是聚集索引组织,myisam引擎表则是堆组织表
【聚集索引】
聚集索引是一种索引组织形式,索引的健值逻辑顺序决定了表数据行的物理存储顺序,而非聚集索引则就是普通的索引了,仅仅只是对数据列创建响应的索引,不影响整个表的物理存储顺序
innodb的行锁
Innodb的行锁是通过索引上的索引项加锁来实现的,这一点mysql与orace不同,后者是通过数据块中对相应的数据加锁来实现的。
Innodb这种行锁实现特点意味着,只有通过索引条件检索数据,innodb才使用行级锁,否则,innodb将使用表锁
事务控制
Mysql命令行的默认下,事务都是自动提交的,sql语句提交后马上会执行commit操作,因此开始一个事务必须使用begin,start,transaction,或者执行set autocommit=0
mysql5.5引入了哪些重要的特性
1)默认存储引擎更改为innodb
2)多核性能上提升
3)增加表分区功能