0
点赞
收藏
分享

微信扫一扫

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

库调多了,都忘了最基础的概念《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部分基础,希望有所帮助。

举报

相关推荐

0 条评论