
MySQL学习
mysql
Micky_Yang
永远别轻视技术,永远也别轻视自己
展开
-
MySQL的锁机制
一、为什么要加锁 锁机制用于管理对共享资源的并发访问,是对数据库的一种保护机制,也是数据库在事务操作中保证事务数据一致性和完整性的一种机制。当有多个用户并发的去存取数据时,在数据库中就可能会产生多个事务同时去操作一行数据的情况,如果我们不对此类并发操作不加以控制的话,就可能会读取和存储不正确的数据,最终破坏了数据的一致性;下面请看一种典型的并发更新数据所产生的数据丢失更新问题:事务A...原创 2020-01-08 17:54:10 · 486 阅读 · 0 评论 -
MySQL中的Explain用法
一、Explain介绍 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而就可以知道MySQL是如何处理你的SQL语句的,可以用来分析你的查询语句或者是表结构的性能瓶颈。 通过EXPLAIN我们可以分析出以下结果: ●表的读取顺序 ●数据读取操作的操作类型 ●哪些索引可以使用 ●哪些索引被实际使用 ●表之间的引用 ●每张表有多少行...原创 2020-01-07 16:08:31 · 2951 阅读 · 0 评论 -
InnoDB存储引擎
MySQL数据库从5.5版本之后,默认的存储引擎从MyISAM引擎替换成InnoDB存储引擎,其特点是支持事务功能、支持外键、数据锁级别为行级锁、支持MVCC多版本并发控制、支持崩溃后的恢复等特性,越来越满足于对数据并发访问和数据安全性的要求。一、InnoDB存储引擎的体系结构: InnoDB后台有多个不同的线程,用来负责不同的任务,主要有: 1)Master Thread:这是最核心的...原创 2020-01-06 16:56:25 · 319 阅读 · 0 评论 -
Xtrabackup实现数据备份与恢复
一、Xtrabackup工具的介绍 Xtrabackup工具是由percona开源的免费的数据库热备份软件,它能对InnoDB数据库存储引擎和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加上表级锁);mysqldump工具的备份方式是采用的数据库逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,那么使用mysqldump工具来进行备份就不太合适了。...原创 2019-08-25 16:45:41 · 432 阅读 · 0 评论 -
MySQL的复制过滤器
1、过滤器概述主数据库只复制给从数据库一部分数据给从节点,而不是复制全部内容;复制过滤器可以设置有哪些数据可以复制到从节点,类似于“白名单”,哪些数据是不可以进行复制,类似“黑名单”。复制过滤器有两种实现机制:一种是在主库进行配置,一种是在从库上配置。然而第一种一般不会使用,因为如果在主库上配置过滤器,那么主库的二进制日志记录的便只有某一个数据库的信息,而不会记录其他库的信息,这样如果发生故障...原创 2019-02-25 14:19:26 · 445 阅读 · 0 评论 -
MySQL的日志管理
日志类型:查询日志:query log;慢查询日志:slow query log;错误日志:error log;二进制日志:binary log;中继日志:reley log;事务日志:transaction log;1、查询日志:记录数据库中的查询操作日志;可以基于文件存储,也可以存储在表中。查询日志的相关变量:MariaDB [(none)]> show global...原创 2019-02-18 20:01:39 · 301 阅读 · 0 评论 -
MySQL的半同步
1、MySQL半同步概述在一般MySQL主从同步下,主库和从库的复制是异步复制的,异步复制是主库数据发生改变,从库的I/O线程请求主库的二进制日志,主库的dump线程把二进制日志发送给从库便结束了,主库并不会去验证从库是否接收到了二进制日志文件,这一过程中,如果从库发生故障了没有接收到主库的日志文件,那么主库和从库的数据便不一致了;所以MySQL的半同步功能就是保证在生产业务中,有多个从库时,用...原创 2019-02-23 19:23:40 · 510 阅读 · 0 评论 -
MySQL的索引
1、索引的概述索引是一种将数据库中单列或者多列的值进行排序的结构。应用良好的索引可以提高查询速度,降低服务器的负载;提高数据库系统的整体性能。但是,创建索引和维护需要耗费时间,索引也需要占用物理空间,会给数据的维护带来一些麻烦。不同的存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎对每个表至少支持16个索引。总索引长度至少为256个字节。有些存储引擎支持更多的索引数和更大的索引长度。...原创 2019-02-12 21:16:49 · 182 阅读 · 0 评论 -
MySQL的双主模型
1、双主模型的概述为了减少主库的写操作压力,有时MySQL数据库会使用双主模型,即两个数据库服务器互为主从,以保证数据的冗余性和负载用户的写操作压力。主主模式可能发生的问题:1)数据不一致2)自动增长id;如果用户写入的id发生了冲突,那么两个数据库的数据便有可能不一致,只有使一个服务器使用奇数ID,另一个服务器使用偶数ID,这样数据在写入的时候就不会导致数据冲突。2、配置步骤:(1)...原创 2019-02-22 20:12:44 · 779 阅读 · 3 评论 -
MySQL的用户和权限管理
1、创建与删除用户:创建用户语法:CREATE USER user_name [IDENTIFIED BY ‘user_password’];MariaDB [(none)]> create user user1 identified by 'redhat';Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> sele...原创 2019-02-17 19:16:34 · 353 阅读 · 0 评论 -
MySQL的事务
1、事务的概述:在MySQL中,事务由单独单元的一条或多条SQL语句组成。在此单元中,每条MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中一旦某条SQL语句执行失败或产生错误,整个单元将会回滚,所有收到影响的数据将返回到事务开始以前的状态;如果单元中的所有SQL语句都执行成功,则事务便被顺利执行。MySQL的逻辑架构和存储引擎:事务的存在周期:2、事务的特性...原创 2019-02-15 14:53:35 · 202 阅读 · 0 评论 -
MySQL的存储引擎
存储引擎就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据是以表的形式存储的,所有存储引擎也可以称为表类型(即存储和操作此表的类型)。在Oracle和SQL Server等数据库中只有一种存储引擎,所以数据存储管理机制都是一样的;而MySQL数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据需要编写自己的存...原创 2019-02-14 20:02:41 · 195 阅读 · 0 评论 -
MySQL语句错误码汇总
1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库文件失败1012:不能读取系统表中的记录1016:文件无法打开,使用后台修复或者使用phpmyadmin进行修复。1020:记录已被其他用户修改102...原创 2019-01-22 20:55:09 · 274 阅读 · 0 评论 -
MySQL全量与增量数据恢复实验
1、创建库表和插入数据内容MariaDB [(none)]> MariaDB [(none)]> MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql ...原创 2019-01-22 20:52:28 · 394 阅读 · 0 评论 -
MySQL的主从复制
MySQL主从复制:原理:1、 Slave服务器上执行start slave,开启主从复制开关。2、 此时,Slave服务器的IO线程会通过Master上授权的复制的用户权限请求连接Master服务器,并请求从指定Binlog日志文件的指定位置(日志文件名和位置就是在配置主从复制服务器时执行change master命令时指定的)之后发送Binlog日志内容;3、 Master服务器接收来...原创 2019-01-22 20:26:27 · 207 阅读 · 0 评论 -
MySQL基础知识总结
常见的SQL语句:1)DDL—数据定义语言(CREATE,ALTER,DROP)–>运维2)DML—数据操作语言(SELECT,INSTERT,UPDATE,DELETE) -->开发3)DCL—数据控制语言(GRANT,REVOKE,COMMT,ROLLBACK)–>运维创建数据库:语法:create database 库名 (注意:库名不可以以数字开头)...原创 2019-01-21 12:44:16 · 233 阅读 · 0 评论