![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql数据库
文章平均质量分 86
七年蝉
什么也没有,谁也不会来。。。。
展开
-
mysql 索引失效
关于mysql 索引失效 :1、索引列不独立 –> 指被索引的这一列不能是表达式的一部分, 不能是函数的参数。如下 :select id,name,age,salary from table_name where salary + 1000 = 6000;其中索引列 salary 被用来做加法运算。select id,name,age,salary from table_name where substring(name,1,3)= 'luc';其中索引列被放在函数中用来做运算。原创 2021-12-01 19:37:33 · 421 阅读 · 0 评论 -
分布式事务
分布式事务什么是事务, 有哪些特性?事务是指 访问并可能更新数据库中各种数据项的一个【程序执行单元】。事务有原子性、一致性、隔离性、持久性四大特性。原子性 : 事务中包含的操作是不可分割的, 要么都做,要么都不做。一致性: 使数据库从一个一致性状态变到另一个一致性状态。(保证多条DML语句同时成功或者同时失败。比如转账,要么转成功, 要么转失败)。隔离性:多个事务间具有隔离,同时进行互不影响。持久性:最终数据必须持久化到硬盘文件。原子性 : 强调整个事务不可分割。一致性原创 2021-09-21 16:13:09 · 93 阅读 · 0 评论 -
mysql隔离性与MVCC
一、隔离性的定义隔离性指多个事务间具有隔离,同时进行互不影响。 -- 在解决并发读写的问题二、并发读写数据库存在的问题1、脏读:A事务读到了B事务没有提交的数据(这条数据可能被回滚,导致A事务跟着出错)。2、不可重复读:A事务第一次读取某条数据后,B事务对该数据做了修改,A事务再去读这条数据的时候发现跟上次读取的结果不一样。3、幻读:A事务读取某范围内的数据并做了修改,此时B事务在这个范围内增加了新数据,A事务再去读取该范围内数据时发现某些数据没有被修改(好像出现幻觉)。三、原创 2021-09-21 14:00:24 · 232 阅读 · 0 评论 -
mysql锁
参考 https://www.cnblogs.com/yaochunhui/p/14186371.htmlhttps://www.cnblogs.com/tutar/p/5878651.html锁的作用Mysql中锁主要用来保障线程在并发读写数据的时候数据的安全性的。他其实跟操作系统中的锁本质差不多, 只是增加了业务特性。操作系统中锁的种类锁细分的话可以分为 :共享锁 : 其他事务可以读,但不能写。排它锁 : 其他事务不能读,也不能写。意向共享锁 :...原创 2021-08-25 16:19:47 · 213 阅读 · 0 评论 -
mysql事务、mvcc
MVCC :参考https://blog.csdn.net/SnailMann/article/details/94724197Mvcc 指的是 多版本并发控制, 主要用来避免在并发情况下写操作对读操作的阻塞。减少锁的使用进而提高并发能力。MVCC 就是为了实现读-写冲突不加锁,而这个读指的就是快照读, 而非当前读。当前读实际上是一种加锁的操作,是悲观锁的实现MVCC主要依赖于 记录中的 3个隐式字段,undo日志 ,Read View 这三个部分来实现的。一、undol..原创 2021-08-23 16:43:26 · 122 阅读 · 0 评论 -
mysql组件及查询流程、索引原理
mysql的内部组件构成如下 :客户端首先通过连接器(默认3306端口)与mysql服务器建立连接,连接器将数据库中客户端使用的用户的权限相关的表在连接建立时加载到内存中, 然后通过内存中的权限校验用户的身份、各种操作权限。客户端在提交各种sql语句并且权限校验通过之后, 如果是查询, 先查询缓存区(内存中)是否有缓存(sql语句为key, 查询结果为value, 这个在后续的版本中被移除了)。没查到则进入 词法分析器 中, 词法分析器对语句的合法性 等做出校验, 然后再将分析后的sql原创 2021-08-22 23:19:48 · 612 阅读 · 0 评论 -
记一次上线前接口优化
记一次上线前接口优化原创 2021-03-30 19:57:33 · 237 阅读 · 0 评论 -
常用30种SQL查询语句优化方法
1、应尽量【避免在 where 子句中使用】【!=或<>操作符】,【否则引擎将放弃使用索引】而【进行全表扫描】。2、对查询进行优化,应【尽量避免全表扫描】,首先应【考虑在 where 及 order by 涉及的列上】【建立索引】。3、【应尽量避免在 where 子句中】对【字段进行 null 值判断】,【否则将导】致引擎放弃使用索引而进行【全表扫描】,如:select id from t where num is null【可以在num上设置默认值0,确保表中num..转载 2021-03-18 22:13:11 · 646 阅读 · 0 评论 -
数据库文件
数据库由 存储在 硬件设备上的信息组成。而 mysql 、sqlist 等只是数据库系统, 在 数据库 使用者 和 储存在 硬件上面的 数据之间建立联系的桥梁。最终, 我们存储在数据库里面的信息会以 文件(或内存)的形式展示在操作系统上。如 Ubuntu16.04 , 通过 mysql 中的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf , 可以看到数据存储在哪里 。即 datadir 对应的目录。进入 该 目录会看到其中每个【目录】【对原创 2021-03-18 22:06:49 · 3162 阅读 · 0 评论 -
单台Mysql 工作原理
首先我们需要知道的是, mysql 数据库存储数据的时候, 数据最终是存储在硬件设备上的,最终转换为 0101... 这种数字电路里面的高低电平放在一个个门电路里面,这些门电路组成一个个小的电子元器件。以此来记录数据。而在软件系统(如linux)看到的表现形式为 一个个 加密过的文件。所以, 最终我们使用数据库存储数据就可以认为是把我们的数据通过特定的方式记录到文件里面。从数据库读取数据就是从这些文件读取数据后通过特定方式还原成我们之前存进去的格式。如上图就是 mysql 数据库原创 2021-03-18 22:03:35 · 100 阅读 · 0 评论 -
Mysql 一: 数据库基础知识
一、数据库简介历史和来源 :1.人类在进化的过程中,创造了数字、文字、符号等来进行数据的记录,但是承受着认知能力和创造能力的提升,数据量越来越大,对于数据的记录和准确查找,成为了一个重大难题2.计算机诞生后,数据开始在计算机中存储并计算,并设计出了数据库系统作用(数据库系统解决的问题):1.【持久化存储】(一块硬盘,具体 在哪需要研究)2.【优化读写】(不是和硬盘进...原创 2018-09-10 19:48:22 · 213 阅读 · 0 评论 -
Mysql 二: 数据库基本操作
查看当前用户 :select Host,User from mysql.user;1.mysql 创建用户 :create user test identified by '123456'2.授权远程登陆:grant all privileges on *.* to 'test'@'%'identified by '123456' with grant option;3.刷...原创 2018-09-10 19:49:21 · 196 阅读 · 0 评论 -
Mysql 三: 数据库简单的查询
一、简介查询的基本语法select * from 表名;from 关键字后面写 表名,表示数据来源于哪张表select 后面写表中的列名,如果是 * 表示在结果中显示表中所有列。在 select 后面的列名部分,可以使用 as 为列起别名,这个别名出现在结果集中。如果要查询多个列,之间使用逗号分隔。二、消除重复行在 select 后面列前使用 distinct...原创 2018-09-10 19:53:22 · 197 阅读 · 0 评论 -
Mysql 四: 数据库复杂的查询
存储关系现在有学生表、科目表这两张表,我需要再创建一张成绩表,用来表示学生各科目的成绩,如下 :一个学生可以有多个成绩,一个成绩只能属于某个学生,一个 科目 可以有多个成绩,一个成绩只能属于某个科目。把外键 存到 1 对 n 中的 n 里面去。即 : 一对多的情况下,在 多 的那张表里面创建一个外键指向 一 的那张表 的 id,多对多的 情况下需要创建第三张表用来...原创 2018-09-10 19:55:36 · 739 阅读 · 0 评论 -
Mysql 五: 数据库自关联、视图
怎么判断两张表中的关系是 一对多 还是 多对一 还是 一对一?表A 中的 一条数据 对应 表B 中的 一条数据, 则为 一对一 。表A 中的 一条数据 对应 表B 中的 多条数据, 则为 一对多 。表A 中的 多条数据 对应 表B 中的 一条数据, 则为 多对一 。这个 对应关系 是以 一条数据 为单位 看对应关系 的,而不是按 表名的逻辑关系 判断的 。购物车的属性...原创 2018-09-10 19:56:54 · 1146 阅读 · 0 评论 -
Mysql 六: 数据库事物、索引
一、事务当一个业务逻辑需要多个sql完成时,如果其中 某条sql语句出错,则希望整个操作都退回。使用事务可以完成退回的功能,保证 业务逻辑的正确性。事务四大特性 : (简称 ACID )原子性(Atomicity) : 事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。一致性(Consistency): 几个并行执行的事务,其执行结果必须与按某...原创 2018-09-10 19:57:57 · 129 阅读 · 0 评论 -
Mysql 七: 数据库读写分离
数据库主从复制与读写分离(了解)在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。有点类似于前面我们学习过的rsync,但是不同的是rsync是对磁盘文件做备份,而mysql主从复制是对数据库中的数据、语句...转载 2018-09-10 19:59:50 · 102 阅读 · 0 评论