2020全网最新SQL优化面试专题及答案

1、Mysql 查询是否区分大小写?

不区分
SELECT VERSION(), CURRENT_DATE;
SeLect version(), current_date;
seleCt vErSiOn(), current_DATE;
所有这些例子都是一样的,Mysql 不区分大小写。

2、Mysql 的技术特点是什么?

Mysql 数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多
线程 SQL 服务器、不同的后端、广泛的应用程序编程接口和管理工具。

3、Heap 表是什么?

HEAP 表存在于内存中,用于临时高速存储。
BLOB 或 TEXT 字段是不允许的
只能使用比较运算符=,<,>,=>,= <
HEAP 表不支持 AUTO_INCREMENT
索引不可为 NULL

4、Mysql 服务器默认端口是什么?

Mysql 服务器的默认端口是 3306。

5、与 Oracle 相比,Mysql 有什么优势?

Mysql 是开源软件,随时可用,无需付费。
Mysql 是便携式的
带有命令提示符的 GUI。
使用 Mysql 查询浏览器支持管理

6、如何区分 FLOAT 和 DOUBLE?

以下是 FLOAT 和 DOUBLE 的区别:
浮点数以 8 位精度存储在 FLOAT 中,并且有四个字节。
浮点数存储在 DOUBLE 中,精度为 18 位,有八个字节。

7、区分 CHAR_LENGTH 和 LENGTH?

CHAR_LENGTH 是字符数,而 LENGTH 是字节数。Latin 字符的这两个数据是相同的,但是对
于 Unicode 和其他编码,它们是不同的。

8、请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

SQL 标准定义的四个隔离级别为:
read uncommited :读到未提交数据
read committed:脏读,不可重复读
repeatable read:可重读
serializable :串行事物

9、在 Mysql 中 ENUM 的用法是什么?

ENUM 是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。
Create table size(name ENUM('Smail,‘Medium’,‘Large’);

10、如何定义 REGEXP?

REGEXP 是模式匹配,其中匹配模式在搜索值的任何位置。

11、CHAR 和 VARCHAR 的区别?

以下是 CHAR 和 VARCHAR 的区别:
CHAR 和 VARCHAR 类型在存储和检索方面有所不同
CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255
当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。

12、列的字符串类型可以是什么?

字符串类型是:
SET
BLOB
ENUM
CHAR
TEXT
VARCHAR

13、如何获取当前的 Mysql 版本?

SELECT VERSION();用于获取当前 Mysql 的版本。

14、Mysql 中使用什么存储引擎?

存储引擎称为表类型,数据使用各种技术存储在文件中。
技术涉及:
Storage mechanism
Locking levels
Indexing
Capabilities and functions.

15、Mysql 驱动程序是什么?

以下是 Mysql 中可用的驱动程序:
PHP 驱动程序
JDBC 驱动程序
ODBC 驱动程序
CWRAPPER
PYTHON 驱动程序
PERL 驱动程序
RUBY 驱动程序
CAP11PHP 驱动程序
Ado.net5.mxj

16、TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?

创建表时 TIMESTAMP 列用 Zero 更新。只要表中的其他字段发生更改,UPDATE
CURRENT_TIMESTAMP 修饰符就将时间戳字段更新为当前时间。

17、主键和候选键有什么区别?

表格的每一行都由主键唯一标识,一个表只有一个主键。
主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。

18、如何使用 Unix shell 登录 Mysql?

我们可以通过以下命令登录:
[mysql dir]/bin/mysql -h hostname -u

19、 myisamchk 是用来做什么的?

它用来压缩 MyISAM 表,这减少了磁盘或内存使用。

20、ISAM 是什么?

ISAM 简称为索引顺序访问方法。它是由 IBM 开发的,用于在磁带等辅助存储系统上存储和
检索数据。

21、如何控制 HEAP 表的最大尺寸?

Heal 表的大小可通过称为 max_heap_table_size 的 Mysql 配置变量来控制。

22、MyISAM Static 和 MyISAM Dynamic 有什么区别?

在 MyISAM Static 上的所有字段有固定宽度。动态 MyISAM 表将具有像 TEXT,BLOB 等字
段,以适应不同长度的数据类型。点击这里有一套最全阿里面试题总结。
MyISAM Static 在受损情况下更容易恢复。

23、federated 表是什么?

federated 表,允许访问位于其他服务器数据库上的表。

24、如果一个表有一列定义为 TIMESTAMP,将发生什么?

每当行被更改时,时间戳字段将获取当前时间戳。

25、列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况?

它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。

26、怎样才能找出最后一次插入时分配了哪个自动增量?

LAST_INSERT_ID 将返回由 Auto_increment 分配的最后一个值,并且不需要指定表名称。

27、你怎么看到为表格定义的所有索引?

索引是通过以下方式为表格定义的:
SHOW INDEX FROM

28、MYSQL 数据表在什么情况下容易损坏?

服务器突然断电导致数据文件损坏。
强制关机,没有先关闭 mysql 服务等。

29、mysql 有关权限的表都有哪几个?

Mysql 服务器通过权限表来控制用户对数据库的访问,权限表存放在 mysql 数据库里,由
mysql_install_db 脚本初始化。这些权限表分别 user,db,table_priv,columns_priv 和
host。

30、Mysql 中有哪几种锁?

MyISAM 支持表锁,InnoDB 支持表锁和行锁,默认为行锁
表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量
最低
行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高

给读者

感谢你看到了这里!
我这边整理了多家互联网公司的面试资料(含答案),
有需要的话可以免费获取!
点击免费获取

多多点赞多多关注是我最大的动力!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_49527334/article/details/108692715