MYSQL中的常见知识问题(一)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1、MYSQL中redolog、binlog 、undolog的区别与作用。

redolog即重做日志用来实现事物的一个持久性由radiobuff和radiolog两部分组成。其中 radiobuff是一个缓冲存放在内存里面radiolog是文件存放在磁盘里。这两个组成redolog以确保事物的持久性。
binlog即归档日志记录了ddl和dml语句以事件的形式进行记录主要用于数据复制操作。
undolog即回滚日志以记录数据被修改之前的信息记录数据的一些逻辑变化主要用于回滚之前的一些操作。

2、MYSQL中表锁、页面锁与行锁的作用及优缺点。

作用表锁——1、用于更新表中大量数据。
2、事物涉及到很多张表业务逻辑复杂加表锁可以避免死锁情况。
行锁——用于并发处理的情况。
页面锁——介于表锁和行锁中间。
优点表锁——开销小加速比较快不会出现死锁的情况。
行锁——锁定力度较小发生锁冲突的概率就会低很多并发能力较好。
页面锁——开销比行锁小锁定力度比表锁小一点并发能力和死锁情况介于表锁和行锁之间。
缺点表锁——因为锁定力度比较大整张表都锁定发生锁冲突的概率较高因此并发度最低。
行锁——开销比较大加速慢会出现死锁情况。
页面锁——会出现死锁。

3、MYSQL设计模式的原则。

开放封闭原则通过扩展软件实体来解决一个需求的变化而不是通过修改代码来完成变化。
里氏代换原则可以在任何地方使用继承的子类子类可以去扩展父类的功能但不能改变父类原有的功能子类可以去实现父类的抽象功能但不能覆盖父类的非抽象功能。
依赖倒转原则面向接口编程应该依赖于抽象而不是依赖于具体耦合度高。
接口隔离原则使用多个隔离的接口比使用单个接口好
迪米特法则最少指导原则一个类要尽可能减少对其他类之间的依赖低耦合高内聚。
单一职责原则一个方法只负责一个事情

4、object类的常用方法。

cloneobject——一个拷贝方法实现了对对象的浅拷贝。
ps只有实现了克隆接口才能调用该方法
finalizevoid——判断对象是不是重写了该方法以判断对象是否可回收。
equalsobjectboolean——在object中子类需要重写该方法。
hashCodeint——主要用于hash查找重写equals方法时一般需要重写该方法用于一些具有hash功能的集合中如hashmap、hashtable等。
waitlongintvoid——配合SQL使用用于等待该对象的锁此时处于睡眠状态。
notifyvoid——唤醒对象在等待队列中的某个线程。
notifyALLvoid——唤醒在该对象上等待队列的所有线程。

5、MYSQL中SQL语句的执行过程。

步骤1查询缓存如果有缓存就返回结果否则就进入到解析器。
步骤2解析器解析完之后就进入到预处理器来对解析树进行预处理。
步骤3进入到查询优化器把处理的解析树转化为执行计划。
步骤4查询执行引擎通过接口调用存储引擎MYISAM、InnoDB的结果将其返回如果是可缓存的就会进行缓存。
ps在MYSQL8的版本中就不能进行查询缓存。

6、MYSQL存储引擎中MYISAM和InnoDB的区别。

分别从存储结构、存储空间、可移植性、备份及恢复、文件格式、记录存储顺序、外键、事务、锁支持等方面进行说明灰色字体为MYISAN红色字体为InnoDB。
1、每张表存放在3个文件frm表格定义文件、MYD数据文件、MYI索引文件。
所有的表都保存在同一个数据文件中InnoDB大小只与操作系统文件大小有关
一般为2GB.
2、MYISAM的存储空间可被压缩存储空间较小。
InnoDB需要更多的内存和存储会在主内存中建立专用的缓冲池用于高速缓冲数据和 索引。
3、MYISAM的数据以文件形式存储跨平台数据转移更方便在备份和恢复时可单独针对
某个表进行操作。
需要拷贝数据文件、备份binlog或者用mysqldump。
4、数据(MYD)和索引(MYI)是分别存储的。
数据和索引是集中存储的.ldb。
5、按记录插入顺序保存。
按主键大小有序插入。
6、不支持外键和事务。
支持外键和事务
7、只支持表锁。
三种锁定方式都支持。
8、SELECT操作中MYISAM存储引擎更优。
INSERT、UPDATE、 DELETE操作InnoDB更优
9、select count*操作中MYISAM存储引擎更快因为其内部维护了一个计数器
可以直接调取。
10、MYISAM是堆表通过B+树索引。
InnoDB是索引组织表通过B+树索引。
11、不支持hash索引但支持全文索引。
支持hash索引但不支持全文索引。

7、创建索引的原则。

1、最左匹配原则
2、较频繁作为查询条件的字段才去创建索引
3、更新频繁字段不适合创建索引
4、区分度太低的不适合创建索引
5、尽量去扩展索引不要新建索引。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysql