写点什么

库调多了,都忘了最基础的概念《Mysql 相关知识》

作者:知识浅谈
  • 2022 年 9 月 13 日
    吉林
  • 本文字数:917 字

    阅读完需:约 3 分钟

库调多了,都忘了最基础的概念《Mysql相关知识》

🍁 作者:知识浅谈,CSDN 博客专家,阿里云签约博主,InfoQ 签约博主,华为云云享专家

📌 擅长领域:全栈工程师、爬虫、ACM 算法

💒 公众号:知识浅谈


🤞拿下,拿下🤞


温馨提醒:这个有点多,请仔细看下去

🎈MySQL 常用引擎有哪些?

Innodb:5.7 之后默认的,支持事务,索引,表级锁行级锁,外键等,文件包含两个文件:表结构文件,索引和数据文件。

MyIsam:不支持事务,支持非聚簇索引,只支持表级锁,不支持外键,文件包括 3 个文件:表结构文件,索引文件,数据文件。

memory:内存型数据库引擎,所有的数据都存储在内存中,因此它的读写效率很高,但 MySQL 服务重启之后数据会丢失。

🎈delete、drop、truncate 有什么区别?

  1. delete:DML 数据库管理语言,执行后可以回滚。drop,truncate:DDL 数据库定义语言,执行后不可回滚。

  2. drop 会删除表的结构及其所依赖的约束、索引等。

  3. truncate 只能作用于表;delete,drop 可作用于表、视图等。

  4. truncate 会重置表的自增值。

🎈聚簇索引和非聚簇索引有什么区别?

聚簇索引:把索引文件和数据文件存储在一起。

非聚簇文件:索引文件和数据文件分开存储,索引文件中存储的是数据文件的地址。

🎈聚簇索引=主键索引吗?

不等于,主键索引是聚簇索引的一种,如果一个数据表中的有主键,那么主键索引就等于聚簇索引,因为一个表中只能有一个聚簇索引。如果表中没有主键,则找第一个唯一索引作为聚簇索引,如果没有唯一索引,则就隐式创建一个主键索引为聚簇索引。

🎈一个表中可以有多个自增列吗?

我们一般在数据库中设置自增的方法是使用 auto_increment 修饰相应的字段之后就是一个自增字段了。


  1. 这个问题和主键一样一个表中只能有一个自增列,

  2. 另外,自增列的字段类型只能为整数类型,因为涉及到自增,

  3. 还有就是设置的字段要和 key 一起使用,像是主键,外键,唯一键这种。

🎈服务器重启,自增 id 会被重置吗?

这个我们经常涉及到的但却没有注意过。MyISAM 和 Innodb 是有区别的。


  • Myisam:因为自增 id 是存储在文件中的,所以重启也不会被重置。

  • Innodb:8.0 之前,是每次取出最大值作为自增的开始位置,但是 8.0 之后是使用的 redolog 记录,重启后不会丢失,重启之后就可以把 redolog 中的记录值和数组的最大值比较取最大值作为自增坐标。

🍚总结

以上为 mysql 部分基础,希望有所帮助。

发布于: 刚刚阅读数: 3
用户头像

知识浅谈

关注

公众号:知识浅谈 2022.06.22 加入

🍁 作者:知识浅谈,InfoQ签约作者,CSDN博客专家/签约讲师,华为云云享专家,阿里云签约博主 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥 联系方式vx:zsqtcc

评论

发布
暂无评论
库调多了,都忘了最基础的概念《Mysql相关知识》_MySQL_知识浅谈_InfoQ写作社区