IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 有点用之——Mysql -> 正文阅读

[大数据]有点用之——Mysql

1.b树和b+树的区别是什么

b+树是b树的升级版,b树非叶子节点和叶子节点都会存储数据,而b+树只有叶子节点才会存储数据,而且叶子节点存储的数据都是双向指针指向的,是有顺序的,一般树的高度在2到4层,树的高度直接影响I/O读写速度,3层树结构能存20G数据,4层可以存储几十T数据,存储单位为页,一页存储16kb数据,每读取一页数据为16kb

2.什么是最左前缀原则

最左前缀原则是在复合索引中是否走索引的一个名词叫法,有一个复合索引,abc,查询,a,ab,abc都会走索引,但是查询b,c,bc都不会走索引,因为索引是有顺序的

3.Mysql数据库事物的四大特性ACID靠什么保证的

A:原子性,由undo log日志保存,它记录了需要回滚的日志信息,事物回滚时撤销已经执行成功的sql
I:隔离性,由MVCC来保证
D:持久性,由内存和redo log来保证,mysql修改数据同时在内存和re do log记录这次操作,宕机时可以从redo log恢复数据
C:一致性,由原子性,隔离性,持久性共同保证数据的一致性
innodb存储引擎记录两个日志,undo log和redo log,mysql服务层面记录binlog日志用来进行数据库主从复制
.
隔离性有四个隔离级别
· read uncommon 读未提交,可能会读到其他事务未提交的数据,也叫脏读
· read commit 读已提交,两次读取结果不一致,叫做不可重复读,不可重复读解决了脏读问题,只会读取已提交的事务,但是会出现一个事物里两次读取结果不一样的问题
· repeatable read 可重复读,这是mysql默认级别,就是每次读取结果都一样,但是有可能产生幻读
· serializable串行,一般不会使用,他会给每一行的数据加锁,会导致大量超时和锁竞争的问题

4.Mysql执行计划explain结果中各个字段的含义是什么

一共有12个结果字段
id: 查询语句中出现每个select关键字,Mysql就会为他分配一个唯一ID,某些子查询会被优化为join查询,那么出现的id一样
select_type: select关键字对应的那个查询字段的类型
table: 表名
partitions: 匹配的分区信息
type: 针对单表的查询方式,时使用索引还是全表扫描
possible_keys: 可能用到的索引,一个表中可以有多个索引,看走哪一个索引
key: 实际上使用的索引名称
key_len: 实际上使用到的索引长度
ref: 当使用索引列等值查询的时候,与索引列进行等值匹配的对象信息
rows: 预估的需要读取的记录条数
filtered: 某个表经过搜索条件过滤后剩余记录条数的百分比
extra: 一些额外信息,比如排序等

5.innodb是如何实现事务的

innodb通过buffer pool, log buffer, redo log, undo log来实现事务的,以一个update语句为例
· innodb在收到一个update语句后,会先根据条件找到数据所在页,并将该页缓存在buffer pool中
· 执行update语句,修改buffer pool中的数据(修改内存中的数据)
· 针对update语句生成一个redolog对象,并存入log buffer 中,
· 针对update语句生成一个undolog日志,用于事物回滚
· 如果事物提交,那么把redolog对象进行持久化,后续还有其他机制将buffer pool中所修改的数据页持久化到磁盘中
· 如果事物回滚,则利用undolog日志进行回滚

6.Mysql慢查询如何优化

1.检查是否走了索引,如果没有索引可以在查询的字段选择创建合适的索引
2.检查走的索引是否是最优索引
3.检查字段是否是必须的,是否查询了过多字段,查处多余数据
4.检查表中数据是否过多,是否该分库分表
5.检查数据库所在服务器是否低性能,是否可以增加硬件资源

7.Mysql中锁的类型有哪些

基于锁的属性分类:共享锁,排他锁
基于锁的粒度分类: 行级锁(innodb),表级锁(myisam),页级锁,记录锁,间隙锁,临键锁
基于锁的状态分类:意向共享锁,意向排他锁

8.共享锁(share lock)

共享锁又称读锁,当一个事务为数据加上读锁之后,其他事务能对该数据加读锁,但不能加写锁,直到所有的读锁释放之后其他事物才能在该数据上加写锁,读锁的特性是为了提高并发读取数据的性能,读取数据的时候不支持修改,避免出现重复读的问题

9.排它锁(exclusive lock)

排他锁又称写锁,当一个事物为数据加上写锁的时候,其他事务将不能对该数据加任何锁,做任何操作,包括读操作,直到该锁释放之后,其他事务才能对数据进行加锁,排他锁的目的是在数据进行修改的时候,不允许其他事务对数据进行修改,也不允许其他事务进行读取数据,避免出现脏数据和脏读问题

10.表锁

表锁是指上锁的时候锁住的是整个表,当下一个事物访问该表的时候,必须等前一个事务释放了锁之后才能对表进行访问,特点:加锁粒度大,操作简单,容易冲突

11.行锁

行锁指上锁的时候锁住的是表中的一行或多行数据,其他事物访问的时候被锁住的数据不能访问,其他数据可以正常访问

12.Mysql主从同步的原理

mysql主从复制中主要有三个线程:master(binlog dump thred),slave(I/O thread, sql thread),master的一个线程和slave中的两条线程
· 主节点bingo,主从复制的基础是主库记录数据库的所有变更记录到binlog,binlog是数据库服务器启动那一刻起,保存所有修改数据库结构或内容的一个文件
· 主节点log dump线程,当binlog有变动时,log dump线程读取其内容并发送给从节点
· 从节点I/O线程接受binlog内容,并将其写入到relay log文件中
· 从节点的sql线程读取relay log文件内容对数据更新进行重放,最终保证主从数据库一致性
·

13.MyISAM和Innodb的区别

MyISAM
·不支持事物,但是每次查询都是原子的
·支持表锁,每次操作对整个表加锁
·存储表的总行数
·一个MyISAM有三分存储文件,索引文件,数据文件,表结构文件
·采用非聚集索引,索引文件的数据存储指向数据文件的指针,辅助索引与主索引基本一致,但是辅索引不用保证唯一性
Innodb:
· 支持ACID的事物,支持事物的四种隔离级别
· 支持行及锁及外间约束,因此支持写并发
·不存储总行数

14.什么是MVCC

多版本并发控制:读取数据时通过一种类似快照的方式将数据保存下来,这样读锁和写锁就不冲突了,不同的事物session会看到自己特定版本的数据
mvcc只在read committed 和repeatable read两种隔离级别下工作,其他两个隔离级别和mvcc不兼容,因为read uncommited总是读取最新的数据行,而不是符合当前事物版本的数据行,而serializable则会对所有的读取的行都加锁

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:25:14  更:2022-05-05 11:29:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:25:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码