MySQL相关知识

164.数据库的三范式是什么?

第一列:保证数据库中字段具有原子性,不可再分。

第二列 : 保证每列都与主键直接相关。

第三列: 数据库的每一列都和主键直接相关而非间接相关。

参考文章:https://blog.csdn.net/tangthh123/article/details/104097956

165.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?

一般情况下 我们创建表的类型InnoDB,如果新增一条记录(不重启MySQL的情况下)这条记录的id是8;但是如果重启MySQL的话,这条记录的id是6,因为InnoDB只把自增主键的最大ID记录到内存中,所以重启数据库都会使最大ID丢失。

但是如果我们使用的表的类型是MyISAM,.那么这条记录的id 就是8,因为MySAM 会把自增主键id的最大id记录到数据文件中,重启MySQL后,自增主键的最大ID也不会丢失。

166.如何获取当前数据库版本?

select version()

167.说一下 ACID 是什么?

https://blog.csdn.net/xj80231314/article/details/85279102

ACID是指在可靠数据库管理系统(DBM)中,事务(transaction)所应该具备的四个特性:原子性,一致性,隔离性,持久性,这是可靠数据库所具备的几个特性

原子性:原子性意味着数据库中的执行是作为源自,即不可再分,整个语句要么执行 要么不执行。

一致性:一致性即在事务开始之前和事务结束之后,数据库的完整约束没有被破坏。

隔离性:事务的执行是互不干扰的,一个事务不可能看到其他其他事务

持久性:意味着在事务完成以后,该事务所对数据库的更改便持久化保存在数据库之中,并不会被回滚。

168.char 和 varchar 的区别是什么?

Varchar往往用来保存可变长度的字符串。简单的说,我们只是给其固定了一个最大值,然后系统会根据实际存储的数据量来分配合适的存储空间

CHAR数据类型与VARCHAR数据类型不同,其采用的是固定长度的存储方式。简单的说,就是系统总为其分配最大的存储空间。当数据保存时,即使其没有达到最大的长度,系统也会为其分配这么多的存储空间。

详细可参考文章:https://blog.csdn.net/lovemysea/article/details/82315514

169.float 和 double 的区别是什么?

1.单精度浮点数Float 在计算机内占用4个字节,而双精度浮点数double 在计算机占8个字节。

2.单精度浮点数Float 有效数字8位,双精度浮点数有效数字Double 16位。

3.单精度浮点数Float 的表示范围:-3.40E+38 ~ +3.40E+38, 双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308。

4.在程序处理速度不同一般来说CPU处理单精度浮点数Float的速度比处理双精度Double浮点数快。

5.总的来说一般后面的数字不加f的话,默认就是double ,而且还和有效位数有关,float的有效位数是8位 超过8位要四舍五入。

https://blog.csdn.net/panda_In5/article/details/80897051

170.mysql 的内连接、左连接、右连接有什么区别?

1. 内连接,显示俩个表中有联系的所有数据

2.左连接,以左表为参照,显示所有的数据,右表没有则以null显示。

3.右连接,以右表为参照显示数据,左表中没有则以null显示。

https://blog.csdn.net/tangthh123/article/details/107036503

171.mysql 索引是怎么实现的?

目前大部分数据库系统及系统文件都采用 B-Tree(B树) 或者 B+Tree(B+树)作为索引结构。B+Tree是数据库系统实现索引的首选数据结构。

参考文章:https://blog.csdn.net/u013308490/article/details/83001060

172.怎么验证 mysql 的索引是否满足需求?

使用 explain 查看 SQL 是如何执行查询语句的,从而分析你的索引是否满足需求。 explain 语法:explain select * from table where type=1。

173.说一下数据库的事务隔离?

详细可参考:https://blog.csdn.net/fuzhongmin05/article/details/91126936

174.说一下 mysql 常用的引擎?

MySQL常用的引擎有:InnoDB存储引擎,MyISAM存储引擎,MEMORY存储引擎,Archice存储引擎。

分别解释可参考:https://www.cnblogs.com/miniSimple/p/12573270.html

175.说一下 mysql 的行锁和表锁?

MySQL常用引擎有MyISAM 和InnoDB ,而InnoDB是MySQL的默认引起,MyISAM不支持行锁,而InnoDB支持行锁和表锁。

详细可参考

176.说一下乐观锁和悲观锁?

参考文章

177.mysql 问题排查都有哪些手段?

  • 使用 show processlist 命令查看当前所有连接信息。
  • 使用 explain 命令查询 SQL 语句执行计划。
  • 开启慢查询日志,查看慢查询的 SQL。

178.如何做 mysql 的性能优化?

参考文章

参考文章2

  • 为搜索字段创建索引。
  • 避免使用 select *,列出需要查询的字段。
  • 垂直分割分表。
  • 选择正确的存储引擎。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值