分类: Mysql

78 篇文章

016、MySQL的事物管及行级锁机制
MySQL的事物管及行级锁机制 一.MySQL事务日志概述 1.什么是事务(Transaction) 事务是伴随着"交易类"的业务场景出现的工作机制。 举个例子: 在计算机中,一个事务可能对应着多个操作,比如小明账户里有1000w人名币,小华账户里有200w人名币。小明向小华转账50w人名币就是一件事务。 在这个事务中,我们可以将操作分为以下两步: (1)小明的账户要扣钱50w…
015、MySQL存储引擎对比
MySQL存储引擎对比 一.MySQL的存储引擎   大家应该知道MySQL的存储引擎应该是表级别的概念,因为我们无法再创建database时指定存储引擎,而是只能在创建表的时候可以明确指定使用哪种存储引擎。因此存储引擎也通常被称作“表类型”。也就是说,存储引擎是负责跟文件系统真正数据打交道的工具,它却决定了表中是如何存储数据的,不用存储引擎他们指出的工作特性是各不相同的。所以,我们在工作时应该选…
014、MySQL管理
MySQL管理 一、系统数据库 MySQL数据库安装后自带四个数据库,具体作用如下: 数据库 含义 mysql 存储MySQL服务器正常运行所需要的各种信息(时区、主从、用户、权限等) information_schema 提供访问数据库元数据的各种表和视图,包含数据库、表、字段类型及访问权限等 performance_schema 为MySQL服务器运行时状态提供一个底层监控功能,主要用于收集数…
013、MySQL的存储引擎
MySQL的存储引擎 一.MySQL的存储引擎概述 1.什么是存储引擎 1.1Oracle MySQL存储引擎概述 存储引擎相当于MySQL内置的文件系统,其作用是和Linux中的文件系统相似。 我们可以为不同的表设置不同的存储引擎,Oracle MySQL支持的存储引擎如下所示: mysql> SHOW ENGINES; # 查看MySQL server的存储引擎(查看你的MySQL现在已…
012、MySQL InnoDB引擎
MySQL InnoDB引擎 一、InnoDB逻辑存储结构 表空间(ibd文件):一个MySQL实例可以对应多个表空间,用于存储记录,索引等数据。 段:分为数据段、索引段、回滚段,InnoDB是索引组织表,数据段就是B+树的叶子节点,索引段即为B+ 树的非叶子节点。段用来管理多个extent区。 区:表空间单元结构,每个区的大小为1M。默认情况下,InnoDB存储引擎页大小为16k,即一个区中一共…
011、MySQL锁
MySQL锁 一、锁的介绍和分类 1.1 介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统计算资源(cpu,ram,i/o)的争用外, 数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题, 锁冲突也是影响数据并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言尤其重要,也更加复杂。 1.2 分类 按锁的力度分,My…
010、MySQL触发器
MySQL触发器 一、触发器介绍和语法 1.1 触发器介绍 触发器是与表相关的数据库对象,指在增删改之前或之后,触发并执行触发器中定义的SQL语句集合。 触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。 使用别名New和Old来引用触发器中发生变化的记录内容,这与其他数据库是相似的。现在触发器还只支持行级 触发,不支持语句级触发。 触发器类型 New和Old in…
009、MySQL存储过程和函数
MySQL存储过程和函数 一、存储过程定义和特点 定义: 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员工作 ,减少数据在数据库和应用服务器之间的传输,有利于提高数据处理的效率。 存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用。 特点: 封装,复用 可以接收参数,也可以返回数据 减少网络交互,效率提升 二、存储过程基本语法 创建存储过…
008、MySQL视图
MySQL视图 一、视图介绍及基本语法 1. 介绍 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在, 行和列数据来定义视图的查询中使用的表(基表),并且是在使用视图时动态生成的。 通俗来说,视图只保存了查询的SQL逻辑,不保存查询结果。所以在创建视图时,主要 工作就落在创建视图这条SQL语句上。 2. 基本语法 1. 创建: Create [or replace] view…
007、MySQL SQL优化
MySQL SQL优化 一、插入数据 1. Insert优化 批量插入: insert into table values (数据1),(数据2),(数据3); 手动提交事务: start transaction; insert into table values (数据1),(数据2),(数据3); insert into table values (数据4),(数据5),(数据6); comm…