
MySQL
文章平均质量分 65
是菜鸟不是咸鱼
是菜鸟不是闲鱼
展开
-
【面经分析】http与https、隔离级别、MVCC的底层原理、当前读和快照读、explain中的type字段、行锁、表锁
1、http与https的区别具体区别是什么?a、安全性HTTP是超文本传输协议,信息明文传输;HTTPS是具有安全性的SSL加密传输协议。b、端口和传输方式两者用的是不同的传输方式,端口号也不同。HTTP的端口号是80,后者的端口号是443c、连接HTTP的连接很简单,是无状态的;HTTPS的是由SSL和HTTP协议构建的,可进行加密传输、身份认证的网络协议。HTTPS的安全如何保证?HTTPS的安全基础是基于SSL协议的,SSL协议位于TCP/IP协议与各种原创 2021-08-22 13:27:03 · 319 阅读 · 0 评论 -
【数据库】数据类型、char和varchar的区别、索引使用的注意事项
1、数据库的数据类型?参考链接:https://www.runoob.com/mysql/mysql-data-types.html数值类型、日期和时间类型、字符串类型。2、数据库中char、varchar有什么区别?char固定长度,varchar长度可变。char和varchar最大的不同就是一个是固定长度,一个是可变长度.由于是可变长度,因此存储的是实际字符串再加上一个记录字符串长度的字节。如果分配给char或varchar列的值超过 列的最大长度,则对值进行裁剪.varchar(M)和原创 2021-06-24 21:52:02 · 1285 阅读 · 0 评论 -
【MySQL】varchar和char的区别,表级锁、行级锁
1、MySQL中varchar和char的区别① 定长和变长char表示定长,规定多少字长则存储多少字长,超过的长度只能截取对应的长度进行存储,子长不够空格补齐;varchar表示在规定字长之内,有多少存多少,无需补齐;超出的部分舍去即可。②存储容量不同char:最多存放255个字符,与编码无关;varchar最多存放65532个字符。2、表级锁、行级锁、页级锁表级锁特点:MySQL各存储引擎最大颗粒度的锁定机制。优点:实现逻辑简单,带来的系统负面影响最小,获取锁、原创 2021-06-16 21:18:21 · 225 阅读 · 0 评论 -
【MySQL】事务(隔离级别与实现原理)、索引、sql优化手段
1、MySQL 事务(隔离级别和实现原理)并发事务可能产生的问题:1、读 脏数据:事务A对数据进行了修改,在修改还没有提交时,事务B读到了未修改前的脏数据。2、丢失修改:事务A对数据进行了修改,在修改还没有提交时,事务B读到了未修改前的脏数据,并对其进行了修改,此时A的修改被B覆盖,从而丢失。3、不可重复读:一个事务对内对数据进行了多次读取,每次读到的都不一样。因为在事务A还没有结束时,事务B修改了数据,事务A读到的数据变化了。4、幻读:和不可重复读有点像,一个事务多次读取同一数据,发现数据量/原创 2021-06-09 21:25:21 · 249 阅读 · 0 评论 -
【面试题分析】数据库引擎、索引原理、数据及索引的存储、一条SQL语句在MySQL中执行过程
1、B+树的底层原理?为什么用B+树?2、一张数据库表,主键和唯一索引,数据和索引是怎么存储的?3、数据库引擎4、索引原理,聚簇、非聚簇聚簇索引:表的数据就是按照索引的顺序存储的,索引项的顺序与表中记录的物理顺序一致;叶子节点存储了真实的数据行,不再有另外单独的数据页;一张表上最多创建一个聚簇索引,因为真实数据的物理顺序只能有一种。非聚簇索引:表数据存储顺序与索引顺序无关;叶子结点包含索引字段值以及指向数据页数据行的逻辑指针;其行数量与数据表行数据量一致。聚簇索引是一种稀疏索原创 2021-05-10 14:52:20 · 146 阅读 · 0 评论 -
【MySQL】如何判断索引是否生效?索引失效的情况?为什么Mysql用B+树做索引而不用B-树或红黑树
1、如何判断索引是否生效?答:在查询语句前加上explain。explain函数作用:显示了MYSQL如何使用索引来处理select语句以及连接表。explain select id , name table where name like 'abc%'2、索引失效的情况2.1、条件中有or2.2、like以%开头2.3、存在索引列的数据类型隐式转换2.4、where子句中对索引列有数学运算2.5、where 子句里对有索引列原创 2021-05-10 14:24:12 · 10309 阅读 · 0 评论 -
【MySQL】MVCC(多版本并发控制)、RR、RC、MySQL中的日志
参考博客:正确的理解MySQL的MVCC及实现原理一、MVCC是什么?多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。说人话:维持一个数据的多个版本,使得读写操作没有冲突。(理想概念)凡是涉及到“写”的并发操作,就可能有线程安全问题要解决。(注意上边是读-写操作)数据库的并发操作有三种:读-读:不存在任何问题,也不需要并发控制;读-写:有线程安全问题,可能会造成事务隔离性问题,例如脏读、幻读、不可重复读;写-写:原创 2021-05-07 17:14:02 · 460 阅读 · 1 评论 -
【多线程】各种锁简要介绍
各种锁简要介绍|–表级锁(锁定整个表)|–页级锁(锁定一页)|–行级锁(锁定一行)——锁索引,如果没有索引,InnoDB会通过隐藏的聚簇索引来对记录加锁(对表中所有数据加锁,和表锁差不多)|–共享锁(S锁,MyISAM 叫做读锁)可以在一个资源加多个共享锁(允许多个事务读),但也得所有共享锁都释放之后才能修改。select * from table lock in share mode|–排他锁(X锁,MyISAM 叫做写锁)——数据库增删改操作默认加排它锁,查询不加锁。一个资源只能加原创 2021-05-06 15:22:29 · 523 阅读 · 0 评论 -
【MySQL】并发事务带来的问题?事务隔离级别?联合查询?两种丢失更新?解决幻读
1、并发事务可能带来的问题多个用户对同一数据进行操作,可能会:1、读 脏数据: 事务A对数据进行了修改,而修改还没有提交时,事务B读到了这个未修改前的数据;2、丢失修改: 事务A对数据进行了修改,而修改还没有提交时,事务B读到了这个未修改前的数据,并对其进行修改,此时A的修改操作被B的操作覆盖,从而丢失;3、不可重复读: 一个事务内多次读取同一数据,读到的结果不一样;因为在事务A还没有结束时,事务B修改了数据,A第二次读数据结果和第一次不一样。4、幻读: 和不可重复读有点像,一个事务多次读取同一数原创 2021-04-28 17:01:50 · 260 阅读 · 0 评论 -
【MySQL】数据库的三大范式、CRUD操作
数据库的三大范式:1、第一范式(1NF):原子性,每一列都不可再分2、第二范式(2NF):满足第一范式的前提下,每张表只描述一个事情3、第三范式(3NF):在2NF的基础上,每一列的数据只和主键直接相关规范性和性能的问题:关联查询的表不得超过三张表。为了保证数据库的性能:故意给某些表增加一些冗余的字段(从多表查询变为单表查询)故意增加一些计算列(从大数据量变为小数据量的查询:索引)JDBC:简化开发人员(对数据库的统一)操作,提供了一个(java操作数据库的)规范,俗称JDBC。原创 2021-04-28 15:58:29 · 174 阅读 · 0 评论 -
【MySQL】DQL查询数据+权限管理
--模拟事务转账SET autocommit = 0;--关闭自动提交START TRANSACTION --开启一个事务//一个事务里的两个操作UPDATE account SET money=money-500 WHERE `name` ='A' --A减少500UPDATE account SET money=money+500 WHERE `name` ='B' --B增加500//如果两个操作都成功,提交,被持久化COMMIT;//如果有1个没有成功,回滚ROLLBACK;..原创 2021-04-21 19:29:03 · 169 阅读 · 0 评论 -
【MySQL】数据插入、删除、修改命令以及外键的设置
1、modify和change的区别modify能修改字段类型和约束,而change不能(例如将字段age的类型从varchar改成int)change用来字段重命名,modify用来修改字段类型和约束(change用来进行字段改名)2、数据表的修改--修改表名ALTER TABLE `student` RENAME AS `stu`--添加表的字段ALTER TABLE `student` ADD age INT(11)--修改表的字段(约束)ALTER TABLE `stu`原创 2021-04-20 16:18:30 · 378 阅读 · 0 评论 -
【MySQL】基本操作命令 以及 INNODB和MYISAM的区别
1、数据库分类关系型数据库(SQL):MySQL、Oracle、Sql server、DB2、SQLite通过表和表之间,行和列之间的关系进行数据的存储。非关系型数据库(NoSQL):Redis、MongDB对象的存储,通过对象自身的属性来决定。DBMS(数据库管理系统):管理和操作数据2、MySQL的一些命令mysql -u root -p --连接数据库update mysql.user set authentication_string=password('12345原创 2021-04-19 21:26:28 · 128 阅读 · 0 评论