mysql
姚大地
大地?真是好名字!!!
展开
-
15. InnoDB 架构
上图详细展示了InnoDB存储引擎的体系结构,从途中可见,InnoDB 存储引擎由 内存池、后台线程和磁盘文件三大部分组成。1. Buffer Pool缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。但是由于CPU速度和磁盘速度之间的鸿沟,基于磁盘的数据库系统通常使用缓冲池记录来提高数据库的的整体性能。在数据库中进行读取操作,将从磁盘中读到的页放在缓冲池中,下次再读相同的页中时,首先判断该页是否在缓冲池中。若在缓冲池中,称该页在缓冲池中被命中,直接读取该页。否则,读.原创 2020-07-05 20:09:25 · 138 阅读 · 0 评论 -
14. MySQL锁介绍
1. 锁介绍按照锁的粒度来说,MySQL主要包含三种类型(级别)的锁定机制:全局锁:锁的是整个database。由MySQL的SQL layer层实现的表级锁:锁的是某个table。由MySQL的SQL layer层实现的行级锁:锁的是某行数据,也可能锁定行之间的间隙。由某些存储引擎实现,比如InnoDB。按照锁的功能来说分为:共享读锁和排他写锁。按照锁的实现方式分为:悲观锁和乐观锁(使用某一版本列或者唯一列进行逻辑控制)表级锁和行级锁的区别:表级锁:开销小,加锁快;不会出现死锁;原创 2020-07-05 16:44:19 · 175 阅读 · 0 评论 -
13. 索引失效分析
1. 全值匹配# 条件与索引一一对应explain select * from tuser where name = 'zhaoyun' and age = 1 and sex = '1';2. 最左前缀组合索引中要遵守最左前缀法则。指的是 查询从索引的最左列开始,并且不跳过索引中的列。# 错误案例,没有最左列explain select * from tuser where age = 23;# 中间索引断(带头索引生效,其他索引失效)explain select * from t原创 2020-07-03 20:40:41 · 167 阅读 · 0 评论 -
12. 查看执行计划
查看执行计划 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句的执行计划进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化。 查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。 可以通过explain命令深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。 EXPLAIN 命令用法十分简单, 在 SELECT 语句原创 2020-07-03 20:31:05 · 3241 阅读 · 0 评论 -
11. MySQL索引原理
索引存储结构索引是在存储引擎中实现的,也就是说不同的存储引擎,会使用不同的索引MyISAM和InnoDB存储引擎:只支持B+ TREE索引, 也就是说默认使用BTREE,不能够更换MEMORY/HEAP存储引擎:支持HASH和BTREE索引B Tree 和 B+ Tree1. B Tree图示B Tree是为了磁盘或其他存储设备而设计的一种多叉平衡查找树。B树的高度一般都是在2-4这个高度,树的高度直接影响IO读写的次数。如果是三层树结构—支撑的数据可以达到20G,如果是四层树结构—支原创 2020-07-03 19:24:15 · 104 阅读 · 0 评论 -
10. MySQL索引介绍
索引介绍 索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在 单独的索引文件中,也可能和数据一起存储在数据文件中)。我们通常所说的索引,包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等,没有特别说明,默认都 是使用B+树结构组织(多路搜索树,并不一定是二叉的)的索引。索引的优势和劣势1. 优势:可以提高数据检索的效率,降低原创 2020-07-03 17:51:38 · 92 阅读 · 0 评论 -
9. 更新语句执行流程
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键 ID 和一个整型字段 c:mysql> create table T(ID int primary key, c int);如果要将 ID=2 这一行的值加 1,SQL 语句就会这么写:mysql原创 2020-07-03 17:32:28 · 104 阅读 · 0 评论 -
4. MySQL语法:DQL
准备工作# 商品表create table product( pid int primary key auto_increment, # 自增加 pname varchar(20), # 商品名称 price double, # 商品价格 pdate date, # 日期 cid int # 分类ID);# 目录表create table category( id int primary key, cname varchar(100));INSERT INTO product原创 2020-07-02 19:13:46 · 104 阅读 · 0 评论 -
MySQL文章概览
基础篇linux安装、配置及卸载MySQLMySQL基本语法一:DDLMySQL基本语法二:DMLMySQL基本语法三:DQLSQL解析顺序表与表之间的关系原创 2020-07-02 17:40:34 · 109 阅读 · 0 评论 -
8. MySQL物理结构
mysql是通过文件系统对数据和索引进行存储的。mysql从物理结构上可以分为日志文件和数据索引文件。mysql在linux中的数据索引文件和日志文件都在/var/lib/mysql目录下。日志文件(顺序IO)mysql通过日志记录了数据库操作信息和错误信息。常用的日志文件包括***错误日志、二进制日志、查询日志、慢查询日志和事务Redo日志、中继日志***等。可以通过命令查看当前数...原创 2019-06-28 08:20:20 · 408 阅读 · 0 评论 -
7. 查询语句执行流程
mysql执行流程图执行sql语句select * from T where ID = 1;原创 2019-06-27 21:17:19 · 655 阅读 · 0 评论 -
6、mysql逻辑架构
逻辑架构图Connectors连接器,指的是不同语言中与SQL的交互Management Serveices & Utilities系统管理和控制工具Connection Pool:连接池管理缓冲用户连接,线程处理等需要缓存的需求。负责监听对mysql服务器的各种请求,接收连接请求,转发所有连接请求到线程管理模块。每一个连接上mysql服务器的客户端请求都会被分配(或创建...原创 2019-06-24 19:54:05 · 115 阅读 · 0 评论 -
5. MySQL 解析顺序
mysql语法顺序SELECT DISTINCT < select_list >FROM < left_table > < join_type >JOIN < right_table > ON < join_condition >WHERE < where_condition >GROUP B...原创 2019-06-22 00:39:17 · 239 阅读 · 0 评论 -
3. MySQL语法:DML
DQL语句(查询)准备工作:创建表,插入数据#商品表CREATE TABLE product ( pid INT PRIMARY KEY AUTO_INCREMENT, # 自增加 AUTO_INCREMENT pname VARCHAR(20),#商品名称 price DOUBLE, #商品价格 pdate DATE, # 日期 cid int #分类ID);#目...原创 2019-06-22 00:15:31 · 165 阅读 · 0 评论 -
2. MySQL语法:DDL
DDL语句数据库操作 database创建数据库create database 数据库名;create database 数据库名 character set utf8;查看数据库查看数据库服务器中所有的数据库show databases;查看某个数据库的定义的信息show create database 数据库名;删除数据库(慎用)drop database 数据库名...原创 2019-06-20 20:09:18 · 100 阅读 · 0 评论 -
1. MySQL 5.6 的安装与卸载
安装mysql#下载rpm文件wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm#执行rpm源文件rpm -ivh mysql-community-release-el6-5.noarch.rpm#执行安装文件yum install mysql-community-server启动mysqlsys...原创 2019-06-20 19:33:19 · 260 阅读 · 0 评论