mysql技术内幕 innodb存储引擎第二版 第一章小结

一 mysql 体系结构和存储引擎

 

1.1 数据库和实例

 

数据库是指代存储数据的各种文件

实例就是数据库的后台线程以及一个共享内存区组成,也就是一个进程,可以用ps -ef|grep mysqld 查看实例进程的详细信息。

linux上读取配置文件的顺序 /etc/my.cnf->/etc/mysql/my.cnf->/usr/local/mysql/etc/my.cnf->~/.my.cnf 如果文件都存在,会默认使用最后一个存在配置文件的配置。

Mac版的 mysql8已经不会生成默认配置文件

datadir在linux系统中默认为/usr/local/mysql/data,data文件夹只是一个链接,指向了/opt/mysql_data/

 

1.2 体系结构

 

Mysql主要有以下几部分组成

1 连接池组件

2 管理服务和工具组件

3 sql 接口组件

4 查询分析器组件

5 优化器组件

6 缓冲组件 cache

7 插件式存储引擎

8 物理文件

 

1.3 存储引擎类型

 

1 innodb引擎

主要用oltp 在线事务处理

支持行锁,非锁定读,多版本控制(mvcc),支持事务

支持四种隔离级别,读未提交,读已提交,可重复度,串行读,利用插入缓冲(insert buffer),二次写(double write),自适应哈希索引(adaptive hash index),预读(read ahead)来提高性能。

利用next-keylocking的策略避免幻读

 

2 MyISAM引擎

主要用olap 在线数据分析 

不支持事务,表锁设计。

存储引擎表由myi,myd文件组成,myd存储数据文件,myi存储索引文件。

 

3 NDB存储引擎

NDB存储引擎是一个集群引擎。

 

4 Memory存储引擎

Memory存储引擎将数据都存储在内存中,一旦数据库重启或者崩溃,数据就会消失,一般只用来存储临时数据。默认的索引方式是自适应哈希索引,不支持行锁,不能使用text blob类型数据,如果使用了,则该表就会自动转为MyISAM引擎的表,使用变长数据依旧会按照定长数据存储。

 

5 Archive 

只支持insert和select,mysql5.1开始支持索引

 

6 Federated

指向远程mysql表,只支持mysql表

 

7 Maria

MyISAM引擎升级版,支持行锁,缓存和索引文件,mvcc。

 

1.4 各种存储引擎的区别

对于事务

BDB和InnoDB支持,MYISAM不支持

MYISAM和Memory都是表锁

BDB是page锁

InnoDB和NDB支持行锁。

 

1.5连接mysql

本节主要讲了连接mysql的几种方式,连接mysql的操作实际上就是一个连接进程和mysql实例的通信过程,也就是进程通信,进程通信主要管道,命名管道,命名字,TCP/IP套接字,UNIX域套接字。

Mysql连接主要有

1 tcp/ip

Tcp/ip是最常用的方式,jdbc连接数据库就是基于此。

2 命名管道和共享内存

在一些早起的windows版本上。

3 unix域套接字

linux和unix环境下。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值