
SQL
文章平均质量分 89
瘦弱的皮卡丘
2018
展开
-
MySQL的那些事
MySQL中执行一条SQL语句,相应表数据的读写都是由存储引擎去做(更新数据、查询数据)。在这个过程,存储引擎需要决策一些事情 数据是从内存查还是从硬盘查 数据是更新在内存,还是硬盘 内存的数据什么时候同步到硬盘 所以存储引擎会按照内部逻辑与内存、硬盘交互。我们可以按需选择存储引擎,比如常见的InnoDB、MyISAM、Memory等等。InnoDB的重要内存结构InnoDB存储引擎在内存中有两个非常重要的组件,分别是缓冲池(Buffer Poo..原创 2022-03-08 19:44:14 · 1630 阅读 · 0 评论 -
MySQL索引相关问题
一、索引有哪些优缺点?索引的优点 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 通过索引,我们可以对数据进行范围遍历。 索引的缺点 时间方面:创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,会降低增/改/删的执行效率; 空间方面:索引需要占物理空间。 二、MySQL有哪几种索引类型?从存储结构上来划分有:B+树索引原创 2022-01-01 20:32:01 · 1238 阅读 · 0 评论 -
数据库优化的四大方法
目录一、前言二、架构优化分布式缓存读写分离水平切分架构优化小结三、硬件优化四、DB优化五、SQL优化执行计划SQL优化小结一、前言首先,我们看一下,数据库优化可以从那些方面入手:正如上图所示,数据库优化可以从架构优化,硬件优化,DB优化,SQL优化四个维度入手。此上而下,位置越靠前优化越明显,对数据库的性能提升越高。我们常说的SQL优化反而是对性能提高最小的优化。接下来我们再看看每种优化该如何实施。二、架构优化一...原创 2021-12-26 11:12:04 · 44855 阅读 · 5 评论 -
SQL语句的执行过程
目录MySQL的逻辑架构连接器查询缓存解析器优化器执行器小结MySQL的逻辑架构我们可以大致把 MySQL 的逻辑架构分成 Server 层和存储引擎层:1)大多数 MySQL 的核心服务功能都在 Server 层,包括连接,查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。其中,Server 最上面的服务也就是连接器,拥有管理 MySQL 连接、权限验证的功能。原创 2021-11-06 18:04:14 · 437 阅读 · 0 评论 -
实际生产环境的 B+ 树索引有多少层?
Q:在实际生产环境中,InnoDB 中一棵 B+ 树索引一般有多少层?可以存放多少行数据?先上答案:A:一般是2 ~ 3 层,可以存放约两千万行的数据。计算过程:页是 InnoDB 磁盘管理的最小单位,在 InnoDB 存储引擎中,默认每个页的大小为 16KB(16*1024 = 16384Byte)。而页里面存放的东西就是一行一行的记录。假设一行数据的大小是 1k,那么一页就可以存放 16 行这样的数据。众所周知,B+ 树的叶子节点存储真正的记录,而非叶子节点的存在是为...原创 2021-11-06 15:51:59 · 1033 阅读 · 0 评论 -
MySQL | 锁机制下 | 悲观锁 | 乐观锁 | 意向锁 | 间隙锁
悲观锁1.什么是悲观锁悲观锁,正如其名,具有强烈的独占和排他特性。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。简单的理解为它认为...原创 2020-04-18 17:41:49 · 600 阅读 · 0 评论 -
MySQL | 锁机制上 | 表锁 | 行锁
MyISAM存储引擎MyISAM存储引擎支持的锁为表锁,表锁又分为以下两类:读锁——共享读锁,执行select操作时加的是读锁(系统自己添加)。 写锁——独占写锁,执行insert,delete,update这三种操作时加的是写锁(系统自己添加)。读写锁不兼容假如此时一张表中有上述两条数据,然后有一个事务A现在要执行select操作,接着他就会在这张表上添加一个读锁。...原创 2020-04-18 17:21:06 · 471 阅读 · 0 评论 -
MySQL | 事务 | 脏读 | 不可重复读 | 幻读 | 隔离级别
我们一般所讲的事务,是MySQL中InnoDB存储引擎所支持的事务。而所谓的事件简单的来讲几就是一组特定SQL语句的集合。事务所具有的四个特性原子性:一个事务是一个不可分割的工作单位,事务中包括的操作要么都做(某个语句的集合要么全部执行成功),要么都不做(某个语句的集合要么全部执行失败)。如果某一步执行失败了,事务就会回滚到语句执行前的状态。 一致性:完整性约束,数据完整性约束指的是为了...原创 2020-04-18 17:11:50 · 400 阅读 · 0 评论 -
MySQL | 触发器的应用 | 存储过程的应用
触发器1触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_T...原创 2020-04-18 14:53:38 · 601 阅读 · 0 评论 -
MySQL | 索引 | MyISAM存储引擎的索引 和 InnoDB存储引擎的索引(图文详解)
目录一. MyISAM存储引擎中的索引1.MyISAM存储引擎中索引的实现特征2.非聚集索引3.MyISAM存储引擎中的主索引4.MyISAM存储引擎中的辅索引二.InnoDB存储引擎中的索引1.InnoDB存储引擎中索引的实现特征2.聚集索引3. InnoDB 存储引擎中的主索引4.InnoDB 存储引擎中的辅索引三.索引的优点四.索引的缺点五...原创 2020-04-10 19:50:28 · 1247 阅读 · 0 评论 -
MySQL | MySQL存储引擎 | MySQL服务器的体系
一.MySQL存储引擎——插件式存储引擎1.什么是插件式存储引擎在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运行的MySQL服务器中。使用MySQL插件式存储引擎体系结构,允许数据库用户为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求。采用MySQL服务器体系结构,由于在存储级别上提供了一致和简单的应用模型和AP...原创 2020-04-07 11:35:13 · 389 阅读 · 0 评论 -
SQL server登录名、服务器角色、数据库用户、数据库角色、架构区别联SQL
1.一个数据库用户可以对应多个架构(架构是表容器)。架构里面包含的是数据库表。2.一个数据库角色有可能涉及多个架构。数据库角色对应的是权限。3.一个用户对应一个数据库角色。4.登录名与数据库用户在服务器...转载 2019-10-29 20:38:32 · 692 阅读 · 0 评论 -
SQL server身份验证
数据库身份验证共有下图五种方式:Windows 身份验证Microsoft Windows 身份验证模式允许用户通过 Windows 用户帐户进行连接。SQL Server 身份验证当用户使用指定的登录名和密码从不可信连接进行连接时, SQL Server 将通过检查是否已设置 SQL Server 登录帐户以及指定的密码是否与以前记录的密码匹配,自行进行身份验证。 如果未设置 S...原创 2019-10-29 20:06:13 · 1132 阅读 · 0 评论 -
SQL server服务器类型
数据库服务类型的四种类型如下图所示:数据库引擎数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。Analysis Servic...原创 2019-10-29 19:54:43 · 3494 阅读 · 0 评论 -
SQL server登录名,用户,角色 sql安全管理 数据库安全
安全性是所有数据库管理系统的一个重要特征。理解安全性问题是理解数据库管理系统安全性机制的前提。下面结合Microsoft SQL Server 2008系统的安全特征,分析安全性问题和安全性机制之间的关系。数据库安全控制的一般方法身份验证最常用的”用户名/密码” 高级的采用生物特征,如:指纹、虹膜访问控制目的是防止非法用户进入系统以及合法用户对系统资源的非法利用 对用户...原创 2019-10-29 11:01:26 · 3570 阅读 · 0 评论