MySQL高级进阶
文章平均质量分 81
勤奋的凯尔森同学
这个作者很懒,什么都没留下…
展开
-
MySQL高级进阶(九)、备份
小景哥哥博客MySQL高级进阶(九)、备份MySQL数据本身提供的备份:mysqldump、ibbackup、replication。第三方工具:xtrabacup、LVM快照备份。根据备份的方法不同,可以将备份分为:Hot Backup(热备)Cold Backup(冷备)Warm Backup(温备)Hot Backup是指数据库运行中直接备份,对正在运行的数据库操作没有任何的影响,也就是Online Backup。Cold Backup是指备份操作是在数据库停止的情况下原创 2021-09-16 16:49:09 · 1518 阅读 · 0 评论 -
MySQL高级进阶(八)、事务
小景哥哥博客MySQL高级进阶(八)、事务InnoDB存储引擎中的事务完全符合ACID特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)原子性(Atomicity)指整个数据库事务是不可分割的工作单位,事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency)指事务将数据库从一种状态转变为下一种一致性状态。原创 2021-09-14 17:18:10 · 1504 阅读 · 0 评论 -
MySQL高级进阶(七)、锁
小景哥哥博客MySQL高级进阶(七)、锁InnoDB存储引擎默认在行级别上对表数据上锁,数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。在数据库中,lock和latch都可以理解为锁,但二者有着截然不同的含义。latch一般称为闩锁(轻量级的锁),因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差。在InnoDB存储引擎中,latch又可以分为mutex(互斥量)和rwlock(读写锁)。其目的是用来保证并发线程操作临街资源的正确性,并且通常没有死锁检测原创 2021-09-14 12:30:39 · 1548 阅读 · 0 评论 -
MySQL高级进阶(六)、索引与算法
小景哥哥博客MySQL高级进阶(六)、索引与算法InnoDB常见索引:B+树索引全文索引哈希索引InnoDB存储引擎支持的哈希索引是自适应的,InnoDB存储引擎会根据使用情况自动为表生成哈希索引,不能人为干预是否在一张表中生成哈希索引。B+树索引是传统意义上的索引,B+树索引并不能找到一个给定键值的具体行。B+树索引能找到的只是被查找数据行所在的页,然后数据库通过把页读入到内存,再去内存中进行查找,最后得到要查找的数据。B+树是为磁盘或其他直接读取辅助设备设计的一种平衡查找树。在B+树原创 2021-09-14 12:29:10 · 1421 阅读 · 0 评论 -
MySQL高级进阶(五)、表
小景哥哥博客表就是关于特定实体的数据集合,这也是关系型数据库的核心。在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表成为索引组织表(index organized table)。在InnoDB存储引擎表中,每张表都有一个主键,如果在创建表时没有显式地定义主键,MySQL数据库会首先判断表中是否有非空的唯一索引,如果有则该列即为主键,如果没有InnoDB存储引擎会自动创建一个6字节大小的指针。当表中有多个非空唯一索引时,InnoDB存储引擎将选择建表时第一个定义的非空唯一索引为主键。原创 2021-09-14 11:56:17 · 1608 阅读 · 0 评论 -
MySQL高级进阶(四)、文件
小景哥哥博客参数文件MySql数据库的参数分为两类,动态参数和静态参数。动态参数意味着可以在MySQL实例运行中进行更改,静态参数说明在整个实例声明周期内都不得进行更改,就好像是只读的。可以通过set命令对动态参数进行修改。日志文件日志文件包括错误日志、慢查询日志、二进制日志和查询日志。错误日志文件对MySQL的启动、运行和关闭过程进行了记录。慢查询日志,在MySQL启动时有一个阈值,会将运行时超过该阈值的所有sql语句都记录到慢查询日志文件中。该阈值可以通过参数long_query_原创 2021-09-14 11:54:46 · 1458 阅读 · 0 评论 -
MySQL高级进阶(三)、InnoDB存储引擎详解
小景哥哥博客InnoDB是事务安全的MySQL存储引擎,设计上采用了类似于Oracle数据库的架构。通常来说,InnoDB存储引擎是OLTP应用中核心表的首选存储引擎。其特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,同时被设计用来最有效地使用内存和CPU。后台线程 InnoDB存储引擎是多线程的模型,因此其后台有多个不同的后台线程,负责处理不同的任务。Master Thread是一个非常核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并原创 2021-09-14 11:53:36 · 1462 阅读 · 0 评论 -
MySQL高级进阶(二)、存储引擎
小景哥哥博客存储引擎是基于表的,而不是数据库。InnoDB存储引擎 InnoDB存储引擎支持事务,其设计目标主要是面向在线事务处理(OLTP, Online Transaction Processing)的应用。其特点是行锁设计、支持外键,并支持类似于Oracle的非锁定读,即默认读取操作不会产生锁。 InnoDB通过使用多版本并发控制(MVCC, Multi-Version Concurrency Control)来获得高并发性,并且实现了SQL标准的4种隔离级别,默认为Repeatabl原创 2021-09-14 11:51:47 · 887 阅读 · 0 评论 -
MySQL高级进阶(一)、基本概念
小景哥哥博客一、基本概念数据库:物理操作系统文件或其他形式文件类型的集合。数据库实例:MySQL数据库由后台进程以及一个共享内存区组成。数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合;数据库实例是程序,是位于用户和操作系统之间的一层数据管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在数据实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。 MySQL被设计为一个单进程多线程架构的数据库原创 2021-09-14 11:50:25 · 880 阅读 · 0 评论