存储引擎

MySQL InnoDB存储引擎的事务隔离级别

江枫思渺然 提交于 2020-03-18 18:45:17
我们知道,在关系数据库标准中有四个事务隔离级别: 未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据 提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读 串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞 查看InnoDB系统级别的事务隔离级别: 以下为引用的内容: mysql> SELECT @@global.tx_isolation; +-----------------------+ | @@global.tx_isolation | +-----------------------+ | REPEATABLE-READ   | +-----------------------+ 1 row in set (0.00 sec) 查看InnoDB会话级别的事务隔离级别: 以下为引用的内容: mysql> SELECT @@tx_isolation; +-----------------+ | @@tx_isolation | +-------------

有效配置MySQL参数

喜夏-厌秋 提交于 2020-03-18 07:15:22
1 .获取当前配置参数 要优化配置参数,首先要了解当前的配置参数以及运行情况。使用下列命令可以获得目前服务器使用的配置参数: mysqld –verbose –help mysqladmin variables extended-status –u root –p 在 MySQL 控制台里面,运行下列命令可以获取状态变量的值: mysql> SHOW STATUS; 如果只要检查某几个状态变量,可以使用下列命令: mysql> SHOW STATUS LIKE ‘[ 匹配模式 ]’; ( 可以使用 % 、 ? 等 ) 2 .优化参数 参数优化基于一个前提,就是在我们的数据库中通常都使用 InnoDB 表,而不使用 MyISAM 表。 在优化 MySQL 时,有两个配置参数是最重要的,即 table_cache 和 key_buffer_size 。 table_cache table_cache 指定表高速缓存的大小。 每当 MySQL 访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的状态值 Open_tables 和 Opened_tables ,可以决定是否需要增加 table_cache 的值。如果你发现 open_tables 等于 table_cache ,并且 opened_tables 在不断增长

MySQL-视图和索引

纵然是瞬间 提交于 2020-03-16 09:52:44
一、视图 视图是从一个或多个表中导出的表,是一种虚拟的表,其内容由查询语句定义。 视图是逻辑上来自一个或多个表的数据集合 视图一旦定义,就可以像表一样进行查询、修改和删除。 对视图引用的基础表来说,视图的作用类似于筛选。 视图的数据来自定义视图查询时引用的表,且在引用视图时动态生成。 为什么使用视图? 限制其他用户对数据库表的访问,因为视图可以有选择性的显示数据库表的一部分 容易实现复杂的查询 对于相同的数据可以产生不同的视图 1 、创建视图 Create view 视图名 [(列名1,列名2)] as select语句 创建视图时,所引用的表尽量<=3,为保证执行效率 范例1:CREATE VIEW emp11 AS SELECT * FROM emp; 范例2:CREATE VIEW emp10 as SELECT * FROM emp WHERE deptno=10; 范例3:CREATE VIEW emp20(no,name) as SELECT empno, ename FROM emp; 范例4:CREATE VIEW emp02(no,name,deptno,dname) as SELECT empno, ename, d.deptno,dname FROM emp e, dept d WHERE e.deptno = d.deptno AND loc =

前端面试题四

家住魔仙堡 提交于 2020-03-13 00:24:22
面试有几点需注意: 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知识、算法、项目细节、技术视野、开放性题、工作案例。 细节追问: 可以确保问到你开始不懂或面试官开始不懂为止,这样可以大大延展题目的区分度和深度,知道你的实际能力。因为这种知识关联是长时期的学习,临时抱佛脚绝对是记不住的。 回答问题再棒,面试官(可能是你面试职位的直接领导),会考虑我要不要这个人做我的同事?所以态度很重要、除了能做事,还要会做人。(感觉更像是相亲( •̣̣̣̣̣̥́௰•̣̣̣̣̣̥̀ )) 资深的前端开发能把absolute和relative弄混,这样的人不要也罢,因为团队需要的是:你这个人具有可以依靠的才能(靠谱)。 前端开发知识点: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack CSS基本功:布局、盒子模型、选择器优先级 HTML5、CSS3、Flexbox JavaScript: 数据类型、运算、对象、Function、继承、闭包、作用域、原型链、事件、RegExp、JSON、Ajax、 DOM、BOM、内存泄漏、跨域、异步装载、模板引擎、前端MVC、路由、模块化、Canvas、ECMAScript 6、Nodejs 其他: 移动端、响应式、自动化构建、HTTP、离线存储、 WEB安全、优化、重构 团队协作、可维护

笔记:MySQL相关知识

孤街醉人 提交于 2020-03-12 09:03:48
MySQL背景介绍 MySQL发展史 MySQL分支介绍 MySQL的优点 MySQL数据库组成 MySQL的原理 MySQL执行流程 MySQL日志 MySQL事务、锁、索引与SQL优化 MySQL背景介绍 随着互联网企业的兴起,例如阿里巴巴、网易、Yahoo、Facebook等大型互联网公司的推动,目前Mysql已经成为世界上最流行的数据库,并一步步开始占领了原有商业数据库的市场,目前Mysql已经成为互联网公司甚至部分传统公司的首选数据库。 MySQL发展史 最初为AB公司的产品,Mysql5.0及之前的版本均由AB公司管理,在2008年的时候AB公司被Sun公司收购,Mysql也就归属到了Sun公司下,但在Sun还没待多久,Sun公司就被Oracle公司收购了,此期间诞生了一个Sun向Oracle的过渡版本:Mysql5.5(5.1-5.5之间没有发布过版本),直至5.6Mysql就彻底归属于Oracle公司旗下了,从Oracle收购Mysql以来,Mysql发展的速度及新的功能越来越强大,逐步向Oracle靠拢,如:表空间、redo、undo分离、隐藏索引,至2019年,Mysql8.0.15已经GA(官方发布稳定版本),整体发展过程如下(AB版本不做加入): 5.1 → 5.5 → 5.6 → 5.7 → 8.0 MySQL分支介绍 MySQL 是一个开源数据库

mysql 学习笔记 01

孤街醉人 提交于 2020-03-11 23:29:43
知识大纲 客户端查询请求流程 先来看客户端运行一条查询 sql 会经过哪些流程: mysql 基本组成结构 从上面的图中可以看出,mysql 大致由 server 层 和 存储引擎层组成。 为了管理方便,mysql 把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为 server 层的功能,把真实存取数据的功能划分为存储引擎的功能。 下面详细说明下各个模块的功能: 一、server server 层又分别由 连接器、查询缓存、分析器、优化器、执行器组成。 1.1 连接器 mysql 是 C/S 架构,每当有一个客户端连接到服务器时,服务器都会创建一个线程来专门处理与这个客户端的交互。 客户端和服务端的连接方式总共有三种。 TCP/IP 命名管道和共享内存(Windows 系统, 客户端和服务端 必须在同一台机器) Unix 域套接字文件(类Unix 系统,客户端和服务端 必须在同一台机器) 注意: 如果用户名密码认证通过,连接器会到权限表里面查出你拥有的权限。之后,这个连接里面的权限判断逻辑,都将依赖于此时读到的权限。 也就是说即使管理员在此时修改了用户的数据库权限,只有用户重新建立连接才会生效。 当客户端与服务端建立连接后,客户端就会以文本消息的方式与服务端通信(CRUD)。服务端接收到消息后(比如一个查询请求),还要进行一系列处理,才能返回数据给客户端

MySQL优化(2):存储引擎和锁

好久不见. 提交于 2020-03-11 00:45:01
存储引擎: 早期的时候,存在如何选择MyISAM和Innodb? 现在,Innodb不断地发展完善,成为了主流的存储引擎。 因此5.5之后的mysql,无脑选择Innodb即可。 MYSQL中的数据,索引以及其他的对象,是如何存储的,是一套文件系统的实现。 MYSQL支持很多的存储引擎,使用 SHOW ENGINES 即可查到全部的引擎 MyISAM和Innodb的比较: 1.存储文件的角度:MyISAM数据和索引分别存储,数据是.myd,索引是.myi;Innodb数据和索引集中存储为.ibd,不支持文件级别的移动 2.记录存储顺序的角度:MyISAM顺序存储,直接在表末尾插入记录;Innodb主键顺序存储,插入时需要排序操作,稍影响了效率 3.空间碎片的角度:MyISAM会产生;Innodb不会产生;空间碎片就删除了以前的记录,MyISAM将会空余下来一些空间 通俗来讲,就说原来存储文件100K,我删除了一部分记录后还是100K 优化MyISAM的空间碎片: OPTIMIZE TABLE XXX; 4.外键和事务的角度:MyISAM不支持;Innodb支持,保证数据的完整性 5.全文索引的角度:MyISAM不支持;Innodb新版本支持,但是不支持中文,所以很鸡肋 6.锁的角度:MyISAM表级锁定;Innodb行级锁定,表级锁定,处理并发能力更强 总结:没有特殊需求

2. 影响mysql性能的因素

我的梦境 提交于 2020-03-08 17:32:57
影响mysql性能的几个方面: 1. 服务器硬件 2. 服务器操作系统 3. 数据库存储引擎 4. 数据库参数配置 5. 数据库结构设计和SQL语句 服务器硬件: 1. CPU: CPU密集型的应用,应选用频率更高的CPU而不是更多的CPU WEB类的应用,CPU核心数量比频率重要 2. 内存: 内存越多越好,内存对读、写都有作用 内存频率越高速度越快,应选择主板支持的最大内存频率,单条容量尽可能大 3. 磁盘: 传统机器硬盘:1.存储容量 2.传输速度 3.访问时间 4.主轴转速 5.物理尺寸 RAID(磁盘冗余阵列): 1.RAID 0,2块以上的硬盘组成,没有冗余和错误修复能力 2.RAID 1,磁盘镜像,2块硬盘组成,有冗余 3.RAID 5,分布式奇偶性校验阵列,3块以上的硬盘组成,任意一个盘数据失效时可以重建,更多盘数据失效时无法重建 4.RAID 10,分片镜像,RAID 0和RAID 1组合,4块以上的硬盘组成,对比RAID 5重建更简单,速度更快 固态存储SSD或PCI-E卡: 比机械硬盘有更好的随机读写性能 比机械硬盘能更好的支持并发 比机械硬盘更容易损坏 适用于存在大量随机I/O的场景 适用于解决单线程负载的I/O瓶颈 网络存储SAN和NAS: SAN的随机读写慢,不如本地RAID磁盘 NAS设备使用网络连接,通过基于文件的协议如NFS或SMB来访问

数据库 mysql整体框架

ぐ巨炮叔叔 提交于 2020-03-08 06:00:54
数据库 mysql整体框架 文章目录 数据库 mysql整体框架 1、体系结构 2、存储引擎 2.1MyISAM存储引擎 2.2 InnoDB存储引擎 1、体系结构 连接者:不同语言的代码程序和mysql的交互(SQL交互) 1、 连接池 管理 : 缓冲用户的连接,线程处理等需要缓存的需求 2、 管理服务和工具组件 :系统管理和控制工具,例如备份恢复、Mysql复制、集群等 3、 sql接口 :接受用户的SQL命令,并且返回用户需要查询的结果 4、 查询解析器 : SQL命令传递到解析器的时候会被解析器验证和解析(权限、语法结构) 5、 查询优化器 : SQL语句在查询之前会使用查询优化器对查询进行优化 6、 缓存 :如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据 7、 插入式存储引擎 :存储引擎说白了就是如何管理操作数据(存储数据、如何更新、查询数据等)的一种方法。因为在关系数据库 中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) 说明: 在Oracle 和SQL Server等数据库中,所有数据存储管理机制都是一样的。 而MySql数据库提供了多种存储引擎 。 用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 甚至一个库中不同的表使用不同的存储引擎,这些都是允许的。 2

MySQL——存储引擎

眉间皱痕 提交于 2020-03-07 14:04:22
MySQL体系结构如下: 下面介绍一下MySQL的存储引擎: MyISAM: MyISAM是MySQL5.5之前版本的默认存储引擎,在之后的版本中,系统表和临时表会使用到这个存储引擎; 由MYD和MYI组成(数据文件和索引文件),是MyISAM特有的,frm文件用来记录表结构,所用存储引擎都有这个文件; 表级锁,并发性不好; 不支持事务; 支持数据压缩; InnoDB: MySQL是MySQL5.5之后版本的默认存储引擎, 支持事务; 行级锁; 建议使用独立表空间: Redo log(已经提交的事务日志) 和Undo log(未提交的事务日志); 来源: https://www.cnblogs.com/gaoquanquan/p/12433681.html