Mysql系列
文章平均质量分 95
主要用于Mysql基础学习,实操以及面试
后端技术那点事
这个作者很懒,什么都没留下…
展开
-
Mysql高级部分系列(七)
1、多版本并发控制1.1、什么是MVCCMVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。1.2、快照读与当前读MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的原创 2022-04-30 12:32:41 · 1593 阅读 · 0 评论 -
Mysql高级部分系列(六)
1、MySQL锁锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。在开发过程中加锁是为了保证数据的一致性,这个思想在数据库领域中同样很重要。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。为保证数据的一致性,需要对 并发操作进行控制 ,因此产生了锁 。原创 2022-04-26 13:48:25 · 1757 阅读 · 0 评论 -
Mysql高级部分系列(五)
1、事务基础知识事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。1.1、数据库事务概述1.1.1、基本概念事务: 一组逻辑操作单元,使数据从一种状态变换到另一种状态。事务处理的原则: 保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么原创 2022-04-24 14:11:01 · 870 阅读 · 0 评论 -
Mysql高级部分系列(四)
在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。有的时候不能简单按照规范要求设计数据表,因为有的数据看似冗余,其实对业务来说十分重要。这个时候,我们就要遵循业务优先的原则,首先满足业务需求,再尽量减少冗余。如果数据库中的数据量比较大,系统的UV和PV访问频次比较高,则完全按照MySQL的三大范式设计数据表,读数据时会产生大量的关联查询,在一定程度上会影响数据库的读性能。...原创 2022-04-19 21:52:48 · 3624 阅读 · 3 评论 -
Mysql高级部分系列(三)
1、索引优化与查询优化都有哪些维度可以进行数据库调优?简言之:索引失效、没有充分利用到索引――索引建立关联查询太多JOIN(设计缺陷或不得已的需求)——SQL优化服务器调优及各个参数设置(缓冲、线程数等)—―调整my.cnf数据过多――分库分表关于数据库调优的知识点非常分散。不同的DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。这里我们分为三个章节进行细致讲解。虽然SQL查询优化的技术有很多,但是大方向上完全可以分成物理查询优化和逻辑查询优化两大块。物理查询优化是通过索原创 2022-04-18 15:36:58 · 1738 阅读 · 1 评论 -
Mysql高级部分系列(二)
1、索引的数据结构1.1、索引概述MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质: 索引是数据结构。简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现高级查找算法。索引是在存储引擎中实现的,因此每种存储引擎的索引不一定完全相同,并且每种存储引擎不一定支持所有索引类型。同时,存储引擎可以定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至原创 2022-04-16 22:58:45 · 1680 阅读 · 1 评论 -
存储过程、存储函数、触发器:
存储过程:1、什么是存储过程:是指在大型数据库系统中,一组为了完成特定功能的语句集,存储在数据库中,经过一次编译后,再调用不需要再次编译(效率比较高),用户通过制定的存储过程的名字并给出参数(如果该存储过程带有参数)来执行它,存储过程是数据库中的一个重要对象(针对sql编程)与存储函数的区别:相同点:1、存储过程和函数都为了可重复执行操作数据库的SQL语句的集合。2、都是一次编译,后续可...原创 2019-08-25 21:06:17 · 1356 阅读 · 0 评论