数据库
他们说快写一首情歌
这个作者很懒,什么都没留下…
展开
-
索引的选择
索引的选择普通索引和唯一索引的选择Change Buffer对性能的影响(普通索引专用)关于ChangeBuffer影响性能的分析change buffer 的使用场景索引的选择普通索引和唯一索引的选择在查询一条语句的是hi偶对于普通索引来说,查找到满足条件的第一个记录后,需要查找下一个记录,直到碰到第一个不满足 条件的记录。对于唯一索引来说,由于索引定义了唯一性,查找到第一个满足条件的记录后,就会停止继续检索。InnoDB 的数据是按数据页为单位来读写的。也就是说,当需要读一条记录的时候,并不原创 2021-10-08 17:44:16 · 216 阅读 · 0 评论 -
观察事务隔离性
观察事务隔离性事务什么时候开启Mysql 中的两个视图MVCC中的快照事务什么时候开启begin/start transaction 命令并不是一个事务的起点,在执行到它们之后的第一个操作 InnoDB 表的语句,事务才真正启动。如果你想要马上启动一个事务,可以使用 start transaction with consistent snapshot 这个命令。 第一种启动方式,一致性视图是在第执行第一个快照读语句时创建的; 第二种启动方式,一致性视图是在执行 start transaction原创 2021-09-23 14:40:36 · 119 阅读 · 0 评论 -
全局锁/表锁/行锁
全局锁和表锁 MySQL的锁全局锁表级锁问题全局锁:使用官方工具处理备份问题全库只读的方式表锁 :给小表加字段 整个数据库崩溃MySQL的锁 数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构 MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock原创 2021-09-22 19:41:51 · 250 阅读 · 0 评论 -
Mysql 索引
索引三大索引结构InnoDB 的索引模型索引维护查询中的回表问题解决回表的覆盖索引最左前缀原则索引下推问题基于主键索引和普通索引的查询有什么区别?如何避免长事务对业务的影响既有联合查询又有各自查询三大索引结构哈希表、有序数组和搜索树。哈希表如何查找:通过哈希函数算出 N;然后,按顺序遍历,找到 数值缺点:因为不是有序的,所以哈希索引做区间查询的速度是很慢的优点:哈希表这种结构适用于只有等值查询的场景,比如 Memcached 及其他一些 NoSQL 引擎有序数组如何查找:用二分法就可以快速原创 2021-09-18 10:42:23 · 229 阅读 · 0 评论 -
MySQL事务
事务事务机制ACID中的I事务启动的方式RTO恢复目标时间事务机制 事务就是要保证一组数据库操作,要么全部成功,要么全部失败。 在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。 比如 MySQL 原生的 MyISAM 引擎就不支持事务,这也是 MyISAM 被 InnoDB 取代的重要原因之一。ACID中的I ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性原创 2021-09-17 17:00:54 · 173 阅读 · 0 评论 -
Mysql结构&&三大日志
Mysql命令常见命令Mysql语句的执行过程问题&解决方案Mysql 内存暴涨 异常重启不建议使用查询缓存引擎扫描函数和慢查询日志查询过程中的日志常见命令//展示所有全局变量show global variables;//修改长连接断开时长set global connect_timeout = 10;//查看当前的链接数目show processlist;//查看慢查询日志相关SHOW VARIABLES LIKE 'slow_query%'//查询超过了多少秒才记录SHO原创 2021-09-17 15:47:09 · 300 阅读 · 0 评论 -
MySQL配置目录介绍
MySQL配置目录介绍MySQL默认目录MySQL配置文件MySQL默认目录/var/lib/mysql文件夹MySQL 其中一个名字就代表一张表后缀和存储引擎相关MySQL配置文件/etc/my.cnf原创 2021-07-20 11:42:04 · 350 阅读 · 0 评论 -
Mariadb 允许远程访问
MariaDB远程访问操作操作1.查看是否允许远程访问select host,user,authentication_string,plugin from user;2.修改权限GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root’;3.修改配置文件注释/etc/my.cnf.d/server.cnf 中的bind-address = 127.0.0.14.刷新重启systemctl restart mariadb.serv原创 2021-08-25 14:19:14 · 656 阅读 · 0 评论 -
SQL游标:逐条处理数据
SQL游标游标背景什么是游标使用游标得过程游标背景 不需要对查询结果集中的所有数据行都采用相同的处理方式,需要每次处理一行或者一部分行,这时就需要面向过程的编程方法了,游标就是这种编程方式的体现。什么是游标 提供了一种灵活的操作方式,从数据结果集中每次提取一条数据记录进行操作。游标是面向过程的编程方式,这与面向集合的编程方式有所不同。 游标是一种临时的数据库对象,可以指向存储在数据库表中的数据行指针。这里游标充当了指针的作用,我们可以通过操作游标来对数据行进行操作。使用游标得过程1.定义游原创 2021-08-12 14:32:29 · 738 阅读 · 0 评论 -
数据库中隔离的作用
隔离的级别和异常隔离性事务并发处理的异常事务隔离的级别隔离性隔离性,事务的基本特征之一。 防止数据库在并发处理时出现数据不一致的情况 严格情况下,使用串行化的方法执行每一个事务,事务之前互相独立,不存在并发。 生产环境,存在大规模并发访问的情况,需要更高吞吐量,串行化无法满足高并发访问需求,需要降低隔离标准,换取事务之间的并发能力。 牺牲一定的正确性来换取效率的提升,也就是说,我们需要通过设置不同的隔离等级,以便在正确性和效率之间进行平衡 对数据库隔离级别进行定义,说明这些隔离标准都解决了哪些原创 2021-08-12 14:07:08 · 450 阅读 · 0 评论 -
SQL事务处理
SQL事务处理事务事务特性ACID事务的控制事务 MySQL 5.5之前 默认存储引擎是MyISAM,5.5后InnoDB。 事物,transaction,进行一次处理的基本单元,要么完全执行,要不都不执行 事物保证了一次处理的完整性,也保证了数据库中的数据一致性,高级的数据处理方式,增删改环节出了错,允许我们回滚。事务特性ACID 事物特性,要不完全执行,要不都不执行,不能执行一半,四个英文字母表达ACID特性。 A 原子性(Atomicity) 原子的概念就是不可分割,组成物质的基本单位原创 2021-08-12 11:09:39 · 184 阅读 · 0 评论 -
SQL存储过程
SQL存储过程SQL存储过程创建存储过程SQL存储过程SQL存储过程和视图一样,也是对SQL代码进行封装,都是对SQL代码进行封装,可以反复利用。 优点:清晰,安全,减少网络传输量 和视图的区别:视图是虚拟表,不对底层数据表直接操作,存储过程是程序化的SQL,可以直接操作底层数据表。面对面向集合的操作方式,能够实现一些更复杂的数据处理。 存储过程=由 SQL 语句和流控制语句构成的语句集合,可以接收输入参数,也可以返回输出参数给调用者,返回计算结果。创建存储过程#Stored Proced原创 2021-08-12 09:31:44 · 104 阅读 · 0 评论 -
SQL中的视图
SQL中的视图视图处理视图使用视图简化SQL操作视图和临时表视图视图 = 虚拟表 v1-v7本身不具有数据,但是创建连接了一个或多个书记表,不同的查询应用都可以建立在虚拟表之上虚拟表的特质:帮我们使用表的一部分而不是所有的表,针对不同的用户制定不同的查询视图,根据权限展示权限内的数据。处理视图 视图作为一张虚拟表,帮我们封装了底层与数据表的接口,相当于是一张表或多张表的数据结果集。 帮我们简化复杂的 SQL 查询,比如在编写视图后,我们就可以直接重用它,而不需要考虑视图中包含的基础查原创 2021-08-11 18:41:17 · 253 阅读 · 0 评论 -
SQL99的连接
SQL99的连接连接SQL92和SQL99的区别不同DBMS注意事项性能问题注意顺序连接1.交叉连接CROSS JOIN 支持多张表交叉连接SELECT * FROM taA CROSS JOIN taB2.自然连接NATURAL JOINa NATURAL JOIN b = WHERE a.id=b.id3.ON连接a JOIN b ON a.id=b.id需要连接的表会采用 JOIN 进行连接,ON 指定了连接条件,后面可以是等值连接,也可以采用非等值连接4.Using连接指定数原创 2021-08-11 16:56:41 · 187 阅读 · 0 评论 -
SQL标准连接
SQL中的连接数据库的构成连接方式数据库的构成 关系型数据库典型的数据结构就是数据表,和谐数据表的组成都是结构化得,关系模型是一个二维表格模型,二维表由行和列组成,行(Row)数据列(Column)某一维度属性 表的组成是基于关系模型的,所以一个表就是一个关系。一个数据库中可以包括多个表,也就是存在多种数据之间的关系。而我们之所以能使用 SQL 语言对各个数据表进行复杂查询,核心就在于连接,它可以用一条 SELECT 语句在多张表之间进行查询,,关系型数据库的核心之一就是连接。连接方式1.等值连原创 2021-08-11 16:22:06 · 154 阅读 · 0 评论 -
子查询的种类和性能
子查询种类和性能子查询EXISTS子查询集合比较子查询子查询 除了单个表的SELECT查询,还可以进行子查询,嵌套在查询中的查询。 优势:进行复杂查询,容易理解查询过程,无法直接从数据表中查询数据,需要从查询结果集中再次进行查询 查询可以分为:关联子查询和非关联子查询 非关联子查询从数据表中查询了数据结果,如果这个数据结果只执行一次,然后这个数据结果作为主查询的条件进行执行。 关联子查询需要执行多次,即采用循环的方式,先从外部查询开始,每次都传入子查询进行查询,然后再将结果反馈给外部,这种嵌套原创 2021-08-11 15:55:58 · 429 阅读 · 0 评论 -
SQL聚集函数
聚集函数聚集函数聚集函数举例数据分组 聚集统计SQL语句顺序聚集函数 对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个的数值。一般用来汇总表的数据。聚集函数举例COUNT 总函数 为空不统计MAX 最大值MIN 最小值SUM 求和AVG 平均值 CONVERT(name USING gbk) 将字符转化为gbk 然后用MIN MAX取值 SELECT COUNT(*)FROM taA WHERE age>5 返回一个数 COUNT(*)是统计数据行数,不管某个字段原创 2021-08-11 14:55:09 · 136 阅读 · 0 评论 -
SQL函数
SQL函数SQL函数常用SQL函数SQL规范SQL函数 SQL函数的代码移植性很差,使用函数之一DBMS 代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性 可以使用函数对检索出来得数据进行函数操作函数可以分为自定义函数和内置函数 SQL 中的函数一般是在数据上执行的,可以很方便地转换和处理数据。一般来说,当我们从数据表中检索出数据之后,就可以进一步对这些数据进行操作,得到更有意义的结果常用SQL函数1.算术函数ABS 绝对值 MOD 取余 ROUND原创 2021-08-11 14:17:33 · 70 阅读 · 0 评论 -
SQL进行数据过滤的方法
SQL数据过滤提升查询效率提升WHERE效率使用通配符进行过滤WHERE 及 ORDER BY 涉及到的列上增加索引提升查询效率1.结束返回结果的数量 LIMIT 指定筛选条件,进行过滤,筛选符合条件的结果,减少网络传递不必要的数据行。提升WHERE效率#使用WHERE子句对条件进行筛选#使用运算符筛选符合标准的WHERE子句SELECT id FROM taA WHERE AGE > 20;SELECT id FROM taA WHERE AGE BETWEEN 10 and 23原创 2021-08-11 11:12:12 · 2977 阅读 · 0 评论 -
SQL检索数据
SQL检索数据如何检索数据使用别名方便检索查询常数去除重复行排序检索数据约束返回结果的数量SELECT的执行顺序SELECT*使用条件,如何提升SELECT查询效率对COUNT()效率得考虑如何检索数据SELECT 从一个或多个表中检索需要的数据行 INSERT 插入DELETE 删除UPDATE 更新使用别名方便检索SELECT name AS n,attack AS a FROM person对原有名称进行简化,让SQL语句看起来简单,包括表名的别名,常用于多表连接查询查询常数在原创 2021-08-11 10:14:39 · 340 阅读 · 0 评论 -
使用DDL时的注意事项
使用DDL时的注意事项DDLDDL的基础语法和设计工具注意事项DDLData Definition Language 数据定义语言,主要定义数据库和数据表的结构DBMS的核心组件,SQL的重要组成部分,需要正确性和稳定性DDL的基础语法和设计工具在DDL中,常用功能增 CREATE 删 DROP改 ALTERCREATE DATABASE base_name;DROP DATABASE base_name;CREATE TABLE table_name;CREATE TAB原创 2021-08-10 16:43:35 · 430 阅读 · 0 评论 -
SQL是如何执行得
SQL是如何执行得Oracle中SQL的执行Oracle中的共享池(避免硬解析)MySQL中SQL的执行存储引擎Oracle中SQL的执行硬解析,软解析SQL语句在Oracle中执行的过程1.语法检查:SQL拼写是否正确(语法错误)2.语义检查:SQL中访问对象是否存在,比如检查一个不存在的列。以上都是为了保证SQL语句不出现错误3.权限检查:查看用户是否具备访问该数据的权限4.共享池检查:共享池(SharePool)是一块内存池,用来缓存SQL语句和该语句的执行计划。Oracle通过检查原创 2021-08-10 14:56:35 · 238 阅读 · 0 评论 -
DBMS简介
DBMS的基础DBMS 数据库管理系统主流DBMS的特点DB、DBS、DBMSDBMS 数据库管理系统主流DBMS的特点关系型数据库 RDBMS 建立在关系模型基础上的数据库,SQL就是关系型数据库的查询语句键值型数据库通过Key-Value键值的方式存储数据,都可以是简单或者复杂的对象,Key作为唯一的标识符,优点是:查找速度快,尤其是和RDBMS相比,缺点是:无法自由使用过滤查询条件,不知道数据在哪里就需要遍历所有键,消耗大量算力,典型的使用场景是作为内容缓存。文档性数据库用来管理文档,作原创 2021-08-10 13:01:50 · 813 阅读 · 0 评论 -
SQL背景知识
SQL内容简介半衰期很长的SQLSQL语言功能划分SQL设计流程SQL语句注意大小写注意事项半衰期很长的SQLMySQL,Oracle这种数据库管理系统都遵循SQL语言。SQL有两个重要标准,SQL92和SQL99,总体来说,SQL通用性强,变化相对少,上手较容易SQL语言功能划分DDL Data Definition Language 数据定义语言用来定义数据库对象,数据库,表,列DML Data Manipulation Language 数据操作语言用来操作和数据库相关的记录DCL原创 2021-08-10 12:12:08 · 273 阅读 · 0 评论 -
安装MySQL的注意事项
访问数据库的方法1.通过TCP/IP协议 打开防火墙后,在3306端口对外提供服务,观察3306端口是否被防火墙屏蔽2.命名管道3.共享内存 在一台机器上,共享内存方法访问MySQL数据库是最快的方法注意事项连接问题本地连接失败,首先观察服务是否开启结束问题数据库语句结束可以使用的符号; 和 \g ...原创 2021-07-18 11:17:18 · 217 阅读 · 1 评论 -
MySQL广度介绍
MySQL广度介绍关系型数据库MySQL拓展非关系型数据库NoSQL拓展其他数据库关系型数据库MySQL拓展SQL ServerOracle有些厂商二次开发MySQL,添加定制功能,rename得到数据库 C/S模式好几个进程通过网络请求同一个SQLServer安卓手机内置数据库 SQLite 进程内的数据库 不同进程访问不同的SQLite 主要的关系型数据库有 SQL Server、Oracle、MySQL、MariaDB、DB2(安全性好,日志,监控)MySQL目前属于OracleMy原创 2021-07-07 22:09:38 · 153 阅读 · 0 评论 -
数据库基本操作
数据库基本操作背景知识数据库分类数据库比文件存储的优势键值操作命令查看当前关系型数据库管理系统中的数据库(RDB in RDBMS)创建一个数据库选择相应的数据库创建一张表查看所有表查看表结构查看建表信息增删改查分组过滤增加一组数据增加多组数据查看表中所有数据带有查询条件的查询语句排列分组聚合函数背景知识数据库分类1.关系型数据库 支持SQL标准的结构化查询语句 SQL+索引 插件式的存储引...原创 2019-12-11 14:27:08 · 588 阅读 · 0 评论