首页 > 编程知识 正文

数据库运维面试题,MySQL 面试题

时间:2023-05-06 10:12:07 阅读:48031 作者:1821

第一,索引是关系数据库非常重要的概念。 请回答有关索引的几个问题。

a )、索引的目的是什么?

快速访问数据表中的特定信息,减少搜索时间

创建唯一性索引以确保数据库表中每行的数据的唯一性。

加快桌子和桌子之间的连接

使用分组和排序子句进行数据搜索可以大大减少在查询中分组和排序所需的时间

b ),索引对数据库系统的负面影响是什么?

负面影响:

索引的创建和维护需要时间,并且随着数据量的增加需要时间。 索引需要物理空间。 除了表,每个索引都需要物理空间。 添加、删除、修改和修改表时,还需要动态维护索引,这会降低数据维护速度。

c )、数据表的索引原则是什么?

在用于缩小查询范围的最常用字段中创建索引。

在需要经常使用的排序的字段中创建索引

d ),在什么情况下不应该进行索引?

请不要对与查询关系不大的列或重复值较多的列编制索引。

请勿对特殊数据类型(如文本字段(text ) )进行索引。

第二,简要说明MyISAM和InnoDB在MySQL数据库中的区别

区别于其他数据库的最重要特征是插件式表存储引擎。 请注意,存储引擎是基于表的,而不是基于数据库的。

InnoDB和MyISAM的区别:

InnoDB存储引擎:是第一个完全支持ACID事务的存储引擎,主要是面向在线传输处理过程(OLTP )的APP应用程序(BDB )

特点:

行锁设计,外键支持;

支持一致的未锁定读取,如Oracle。 也就是说,默认情况下,读取操作不发生锁定。

InnoDB将数据放在逻辑表空间中,由InnoDB自身管理。 从MySQL 4.1版开始,每个InnoDB存储引擎的表都可以存储在单独的ibd文件中。

InnoDB通过使用多版本整合(mvcc ) (读取不阻止写入,写入也不阻止读取)来提供高并发性,达到了SQL标准的四个隔离级别(默认设置)

InnoDB还具有高性能和高性能,如插入缓冲区(insert buffer )、双写(double write )、自适应散列索引(adaptive hash index )和预读(read ahead )

InnoDB采用聚集(clustered )方法来存储表中的数据。 每个目标的存储按主键顺序存储(如果在生成表时未明确指定主键,InnoDB将为每行生成6字节的ROWID,并将其作为主键)。

InnoDB表中有三个隐藏字段。 除了上面提到的6字节DB_ROW_ID外,还有6字节DB_TX_ID (事务ID )和7字节DB_ROLL_PTR (对应回退段的地址)。 这可以在Innodb监视器上看到;

MyISAM存储引擎:是MySQL官方提供的存储引擎,主要面向在线分析处理(OLAP )的APP应用程序。

特点:

不支持事务,支持表和全文索引。 操作速度快;

MyISAM存储引擎表由用于存储数据文件的MYD和用于存储索引文件的MYI组成。 MySQL数据库只缓存其索引文件,数据文件的缓存交给操作系统自身进行;

从MySQL 5.0版开始,MyISAM默认支持256T单表数据;

第三,说明MySQL外连接、内连接和自连接的区别

首先,交叉连接:交叉连接(也称为笛卡儿积)是指一个表中的所有记录与另一个表中的所有记录直接匹配,而不使用条件。

内连接是仅条件交叉连接,根据某个条件筛选符合条件的记录,不符合条件的记录不会出现在结果集中。 这意味着内连接只连接匹配的行。

外连接的结果集不仅包含满足连接条件的行,还包含左、右或两个表中的所有数据行。

这三种情况依次称为左外连接、右外连接、全外连接。

左外连接也称为左连接,左表为主表,左表中的所有记录都显示在结果集中。 对于与右表不匹配的记录,表示右对应字段的值输入为NULL。

右连接,也称为右连接,右表为主表,右表中的所有记录显示在结果集中。 左连接和右连接兼容,但MySQL当前不支持所有外部连接。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。