目录

  • MySql体系结构和存储引擎
    • 1.1 数据库与数据库实例
    • 1.2 MySQL体系结构
    • 1.3 MySQL表存储引擎
      • 1.3.1 InnoDB存储引擎
      • 1.3.2 MyISAM存储引擎
      • 1.3.3 Memory存储引擎
    • 1.4 连接MySQL
      • 1.4.1 TCP/IP
      • 1.4.2 命名管道与共享内存
      • 1.4.3 Unix域套接字

MySql体系结构和存储引擎

1.1 数据库与数据库实例

  • 数据库实例:数据库实例是应用程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等,都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。
  • 数据库:数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合。

在启动实例时,MySQL数据库会去读取配置文件,MySQL是按照/etc/my.cnf->/etc/mysql/my.cnf->/usr/local/mysql/etc/my.cnf->~/.my.cnf的顺序读取配置文件的。在Windows下,配置文件的后缀名也可能是.ini

配置文件中datadir参数指定了数据库所在路径。Linux下默认为、usr/local/mysql/data。但是该路径只是一个链接,其指向/opt/mysql_data目录。

1.2 MySQL体系结构

  1. 连接池组件
  2. 管理服务和工具组件
  3. SQL接口组件
  4. 查询分析器组件
  5. 优化器组件
  6. 缓冲组件
  7. 插件式存储引擎
  8. 物理文件

1.3 MySQL表存储引擎

1.3.1 InnoDB存储引擎

InnoDB存储引擎支持事务,主要面向在线事务处理方面的应用。同时支持行级锁,支持外键。InnoDB通过使用多版本并发控制(MVCC)来获得高并发性,并实现了SQL标准的4种隔离级别,默认为“可重复读”的级别。同时使用一种next-key locking的策略来避免幻读现象的产生。除此之外,InnoDB存储引擎还提供插入缓冲、二次写、自适应哈希索引、预读等高性能和高可用的功能。

对于表中数据的存储,InnoDB存储引擎采用了聚集的方式,每张表的存储都按照逐渐的顺序存放,如果没有显式地在表定义时指定逐渐,InnoDB存储引擎会为每一行生成一个6字节的ROWID,并以此作为主键。

1.3.2 MyISAM存储引擎

不支持事务、表锁和全文索引。该存储引擎的表是由MYD和MYI文件组成,MYD用来存放数据文件,MYI用来存放索引文件。

1.3.3 Memory存储引擎

该存储引擎将表中的数据全部存放在内存中,如果数据库重启或者发生崩溃,表中的数据将会消失。它默认使用的是哈希索引,而不是我们熟悉的B+树索引。

1.4 连接MySQL

连接MySQL操作是连接进程与MySQL数据库实例进行通信,从开发的角度来说,本质上是进程通信。常用的进程间通信方式有管道、命名管道、命名字、TCP/IP套接字、Unix域名套接字。MySQL提供的连接方式从本质上看都是上述提及的进程通信方式。

1.4.1 TCP/IP

mysql -h(target mysql server ip) -u(username) -p(password)ex:
mysql -h192.168.0.101 -u david -p

通过TCP/IP连接到MySQL实例时,首先会检查一张权限视图,用来判断发起请求的客户端IP是否允许连接到MySQL实例,该视图在mysql库下,表名为user

1.4.2 命名管道与共享内存

若两个通信的进程在同一台服务器上,那么可以使用命名管道。在MySQL数据库中,需要在配置文件中启用**–enabel-named-pipe**选项,若要使用共享内存的连接方式,则需要在配置文件中添加–shared-memory,同时在链接时,客户端还必须使用-protoco=memory选项。

1.4.3 Unix域套接字

在Linux和Unix环境下,还可以使用Unix域套接字。Unix与套接字其实不是一个网络协议,所以只能在MySQL客户端和数据库实例在同一台服务器上的情况下使用。可以在配置文件中指定套接字文件的路径,如**-socket=/tmp/mysql.sock**。当数据库实例启动后,可以通过下列命令来进行Unix域套接字文件的查找:

mysql> show variabels like 'socket'

知道了Unix套接字文件的路径后,就可以使用该方式进行链接了,如下所示:

mysql -udavid -S /tmp/mysql.sock

MySQL技术内幕-InnoDB存储引擎:第一章阅读相关推荐

  1. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01 1. MySQL体系结构和存储引擎 1.1 定义数据库和实例 数据库database: 物理操作系统文件或其他形式文件类型的集合. 当使 ...

  2. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02 6. 锁 ​ 人们认为行级锁总会增加开销.实际上,只有当实现本身会增加开销时,行级锁才会增加开销.InnoDB 存储引擎不需要锁升级,因 ...

  3. Mysql技术内幕InnoDB存储引擎——InnoDB存储引擎

    特此申明: 前段时间找工作所以看了<Mysql技术内幕InnoDB存储引擎>,整理的时候除了参考网上已有的笔记贴,加上自己整合的,可能和别人有雷同之处.不过无所谓啦,写出来自己看看,需要的 ...

  4. MySQL技术内幕 InnoDB存储引擎:锁问题(脏读、不可重复读)

    1.脏读 在理解脏读(Dirty Read)之前,需要理解脏数据的概念.但是脏数据和之前所介绍的脏页完全是两种不同的概念.脏页指的是在缓冲池中已经被修改的页,但是还没有刷新到磁盘中,即数据库实例内存中 ...

  5. MySQL技术内幕 InnoDB存储引擎——第2章 InnoDB存储引擎(未完待续)

    第2章 InnoDB存储引擎 2.1 InnoDB存储引擎概述 InnoDB存储引擎是第一个完整支持ACID事务的MySQL存储引擎(BDB是第一个支持事务的MySQL存储引擎,现在已经停止开发). ...

  6. Mysql技术内幕——InnoDB存储引擎

    一.mysql体系结构和存储引擎 1.1.数据库和实例的区别 数据库:物理操作系统或其他形式文件类型的集合.在mysql下数据库文件可以是frm,myd,myi,ibd结尾的文件. 数据库实例:由数据 ...

  7. mysql技术内幕innodb存储引擎——表索引算法和锁_(转)Mysql技术内幕InnoDB存储引擎-表索引算法和锁...

    表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...

  8. mysql技术innodb存储引擎读后感_《Mysql技术内幕-InnoDB存储引擎》读书笔记 (一)...

    @(Mysql) 官方数据库 下载 导入/data/mysql57/bin/mysql --socket /data/mysql3306/mysql.socket -uroot -ppassword1 ...

  9. MySQL技术内幕InnoDB存储引擎(表索引算法和锁)

    表 4.1.innodb存储引擎表类型 innodb表类似oracle的IOT表(索引聚集表-indexorganized table),在innodb表中每张表都会有一个主键,如果在创建表时没有显示 ...

最新文章

  1. sql server 日期
  2. CentOS下MySQL的彻底卸载
  3. 验证mongodb主从复制过程~记录操作
  4. 【运筹学】表上作业法 ( 找初始基可行解 | 计算检验数 | 调整运量 )
  5. JavaScript装饰器模式
  6. 杭电信工2018期末c语言试卷,2018C程序设计期末试卷(2018杭电A卷).doc
  7. 【EOJ Monthly 2018.10 - A】oxx 的小姐姐们(模拟,水题,填充矩阵,输出格式有坑)
  8. linux基本命令示例_Linux ps命令– 20个真实示例
  9. 做项目时自己的心得体会
  10. 字体的基础知识:中文字体的特征
  11. STM32 CubeIDE快速创建工程(图文详解)
  12. matlab分析间断点,用MATLAB绘制有间断点的物理函数图形的方法
  13. 有必要说一说即将到来的春招(经历+重要性+如何准备)
  14. vue:基础:生命周期
  15. 如何在Nintendo Switch上禁用截图按钮
  16. Flutter中的依赖注入——get_it
  17. 惠普喷墨打印机Smart Tank 519打印错误的解决
  18. Power BI——地图可视化(气泡地图Bubble Map)
  19. R 语言与中心极限定理
  20. 服务器先raid还是先系统好,新的服务器是先装系统还是在做raid0

热门文章

  1. #Z0424. 树上的旅行
  2. PDF格式分析(六十一) Text 文字——字体的使用
  3. MEXGroup:美联储鸽派言论兑现,短线市场或陷入震荡
  4. 微盟WOS正式发布,打造去中心化商业操作系统
  5. 【第四期】网络层、传输层、应用层
  6. NGUI(3) UIWidget
  7. VMware虚拟机配置自己想要的IP
  8. Web漏洞扫描神器Nikto
  9. idea如何调整字体大小
  10. 如何去设计体验感超强的线上训练营?