关于Mysql面试需要掌握的知识点(1)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 关于Mysql面试需要掌握的知识点

一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?

如果表的类型是 MyISAM,那么是 18 ,因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失 。


如果表的类型是 InnoDB,那么是 15 ,InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进行OPTIMIZE 操作,都会导致最大 ID 丢失。


Mysql 的技术特点是什么?


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


Heap 表是什么?


HEAP 表存在于内存中,用于临时高速存储。

BLOB 或 TEXT 字段是不允许的

只能使用比较运算符=,<,>,=>,= <

HEAP 表不支持 AUTO_INCREMENT 索引不可为 NULL

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


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

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


Mysql 是开源软件,随时可用,无需付费。

Mysql 是便携式的带有命令提示符的 GUI。

使用 Mysql 查询浏览器支持管理

如何区分 FLOAT 和 DOUBLE?


以下是 FLOAT 和 DOUBLE 的区别:


浮点数以 8 位精度存储在 FLOAT 中,并且有四个字节。浮点数存储在 DOUBLE 中,精度为 18 位,有八个字节。

区分 CHAR_LENGTH 和 LENGTH?


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


请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别? SQL 标准定义的四个隔离级别为:


read uncommited:读到未提交数据

read committed:脏读,不可重复读

repeatable read:可重读

serializable:串行事物


在 Mysql 中 ENUM 的用法是什么?


ENUM 是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。

Create table size(name ENUM('Smail,'Medium','Large');


如何定义 REGEXP?


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


CHAR 和 VARCHAR 的区别?


以下是 CHAR 和 VARCHAR 的区别:


CHAR 和 VARCHAR 类型在存储和检索方面有所不同

CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255

当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。

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


字符串类型是:

SET、BLOB、ENUM、CHAR、TEXT、VARCHAR


如何获取当前的 Mysql 版本?


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

Mysql 中使用什么存储引擎?存储引擎称为表类型,数据使用各种技术存储在文件中。


技术涉及:


Storage mechanism

Locking levels

Indexing

Capabilities and functions.

Mysql 驱动程序是什么?


以下是 Mysql 中可用的驱动程序:


PHP 驱动程序

JDBC 驱动程序

ODBC 驱动程序

CWRAPPER

PYTHON 驱动程序

PERL 驱动程序

RUBY 驱动程序

CAP11PHP 驱动程序

Ado.net5.mxj

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


创建表时 TIMESTAMP 列用 Zero 更新。只要表中的其他字段发生更改,

UPDATE CURRENT_TIMESTAMP修饰符就将时间戳字段更新为当前时间。


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


表格的每一行都由主键唯一标识,一个表只有一个主键。


主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。


如何使用 Unix shell 登录 Mysql?


我们可以通过以下命令登录:


[mysql dir]/bin/mysql -h hostname -u

myisamchk 是用来做什么的?


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


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


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


MyISAM Static 和 MyISAM Dynamic 有什么区别?


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


MyISAM Static在受损情况下更容易恢复。


federated 表是什么?


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


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


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


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


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


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


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


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


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

SHOW INDEX FROM


LIKE 声明中的%和_是什么意思?


%对应于 0 个或更多字符,_只是 LIKE 语句中的一个字符。


如何在 Unix 和 Mysql 时间戳之间进行转换?


UNIX_TIMESTAMP是从 Mysql 时间戳转换为 Unix 时间戳的命令

FROM_UNIXTIME是从 Unix 时间戳转换为 Mysql 时间戳的命令


列对比运算符是什么?


在 SELECT 语句的列比较中使用=,<>,<=,<,> =,>,<<,>>,<=>,AND,OR 或 LIKE 运算符。

我们如何得到受查询影响的行数?


行数可以通过以下代码获得:

SELECT COUNT(user_id)FROM users;


Mysql 查询是否区分大小写?


不区分


SELECT VERSION(), CURRENT_DATE;

SeLect version(), current_date;

seleCt vErSiOn(), current_DATE;


所有这些例子都是一样的,Mysql 不区分大小写。


LIKE 和 REGEXP 操作有什么区别?


LIKE 和 REGEXP 运算符用于表示^和%。

SELECT * FROM employee WHERE emp_name REGEXP "^b";

SELECT * FROM employee WHERE emp_name LIKE "%b";



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
21 2
|
7天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
27 2
|
7天前
|
数据采集 消息中间件 监控
Flume数据采集系统设计与配置实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入探讨Apache Flume的数据采集系统设计,涵盖Flume Agent、Source、Channel、Sink的核心概念及其配置实战。通过实例展示了文件日志收集、网络数据接收、命令行实时数据捕获等场景。此外,还讨论了Flume与同类工具的对比、实际项目挑战及解决方案,以及未来发展趋势。提供配置示例帮助理解Flume在数据集成、日志收集中的应用,为面试准备提供扎实的理论与实践支持。
21 1
|
25天前
|
SQL 存储 关系型数据库
对线面试官 - 如何理解MySQL的索引覆盖和索引下推
索引下推是MySQL 5.6引入的优化,允许部分WHERE条件在索引中处理,减少回表次数。例如,对于索引(zipcode, lastname, firstname),查询`WHERE zipcode=&#39;95054&#39; AND lastname LIKE &#39;%etrunia%&#39;`时,索引下推先过滤zipcode,然后在索引中应用lastname条件,降低回表需求。索引下推可在EXPLAIN的`Using index condition`中看到。
对线面试官 - 如何理解MySQL的索引覆盖和索引下推
|
7天前
|
分布式计算 资源调度 监控
Hadoop生态系统深度剖析:面试经验与必备知识点解析
本文深入探讨了Hadoop生态系统的面试重点,涵盖Hadoop架构、HDFS、YARN和MapReduce。了解Hadoop的主从架构、HDFS的读写流程及高级特性,YARN的资源管理与调度,以及MapReduce编程模型。通过代码示例,如HDFS文件操作和WordCount程序,帮助读者巩固理解。此外,文章强调在面试中应结合个人经验、行业动态和技术进展展示技术实力。
|
22天前
|
SQL 关系型数据库 MySQL
MySQL SQL语句面试准备
MySQL SQL语句面试准备
11 0
|
29天前
|
存储 关系型数据库 MySQL
MySQL 面试题及答案整理,最新面试题
MySQL 面试题及答案整理,最新面试题
87 0
|
1月前
|
存储 SQL 关系型数据库
【怒怼大厂面试官】你先说说知道哪些MySQL的高级特性
面试官:上一期博客问了你MySQL主从复制,现在考考你MySQL高级特性吧。分区的一个主要目的是将数据按照一个较粗的粒度分在不同的区域,这样的话就有很多好处。
44 1
|
21天前
|
Java 程序员
java线程池讲解面试
java线程池讲解面试
38 1
|
2月前
|
存储 关系型数据库 MySQL
2024年Java秋招面试必看的 | MySQL调优面试题
随着系统用户量的不断增加,MySQL 索引的重要性不言而喻,对于后端工程师,只有在了解索引及其优化的规则,并应用于实际工作中后,才能不断的提升系统性能,开发出高性能、高并发和高可用的系统。 今天小编首先会跟大家分享一下MySQL 索引中的各种概念,然后介绍优化索引的若干条规则,最后利用这些规则,针对面试中常考的知识点,做详细的实例分析。
237 0
2024年Java秋招面试必看的 | MySQL调优面试题