掌握了这35道MySQL技术问题,面试还有何惧?
mhr18 2024-12-23 11:10 22 浏览 0 评论
1 MySQL 简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一。
2 MySQL的50道常见面试题总结
2.1 Mysql中的锁有哪些?
Mysql存储引擎MyISAM支持表锁,Mysql存储引擎InnoDB支持表锁和行锁(默认为行锁)
表锁和行锁优缺点:
表锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低。
行锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高。
2.2 怎么操作容易损坏MYSQL数据表?
突然断电导致服务器关机
没先停用mysql 服务,二十强制关机服务器。
以上这种类似情况,都会而导致数据库数据文件损坏。
2.3 用MYSQL记录钱的字段,用什么类型最好?
如果字段和钱有关的用NUMERIC和DECIMAL类型最好。NUMERIC和DECIMAL被用于保存值,该值的准确精度是极其重要的值。
因为DECIMAL和NUMERIC的值是作为字符串存储,因此才能保存更精准的小数。
2.4 MYSQL支持事务吗?有哪些事务支持?
缺省情况下,mysql是不支持事务的。此时是autocommit模式,所有更新操作都是即时提交。
如果MYSQL用的InnoDB Tables 或 BDB tables,则可用事务处理;当然如果设置 SET AUTOCOMMIT=0 也就不使用事务操作了。
2.5 MYSQL的访问控制列表是什么意思?
ACL(访问控制列表)是与对象关联的权限列表。这个列表是Mysql服务器安全模型的基础,它有助于排除用户无法连接的问题。
2.6 通用SQL函数是什么?
CONCAT(A, B)
连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合并为一个字段。
DATEDIFF(A,B)
确定两个日期之间的差异,通常用于计算年龄。
SUBTIMES(A,B)
确定两者之间的差异。
FROMDAYS(INT)
将整数天数转换为日期值。
FORMAT(X, D)
格式化数字X到D有效数字。
NOW()
将当前日期和时间作为一个值返回。
MONTH(),DAY(),YEAR(),WEEK(),WEEKDAY()
从日期值中提取给定数据。
CURRDATE(), CURRTIME()
返回当前日期或时间。
HOUR(),MINUTE(),SECOND()
从时间值中提取给定数据。
2.7 MYSQL非标准字符串有哪些?
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
2.8 Mysql表最多允许多少个触发器?
BEFORE INSERT
AFTER INSERT
BEFORE UPDATE
AFTER UPDATE
BEFORE DELETE
AFTER DELETE
2.9 Mysql中CREATE语句可以创建哪些对象?
DATABASE
EVENT
FUNCTION
INDEX
PROCEDURE
TABLE
TRIGGER
USER
VIEW
2.9 Mysql中NOW()和CURRENT_DATE()区别是啥?
NOW()函数用来取当前时间(包含年、月、日、时、分、秒)。
CURRENT_DATE()只取当前年、月、日。
2.10 Mysql中一张表最多创建多少个索引?
表最多只能创建16个索引。
2.11 Mysql中取前50行数据?
SELECT*FROM tableLIMIT 0,50;
2.12 Mysql中如何输入字符为十六进制数字?
MYSQL中输入带有单引号的十六进制数字和前缀(X),或者只用(Ox)前缀输入十六进制数字。
2.13 怎么优化Mysql中的DISTINCT?
DISTINCT在所有列上转换为GROUP BY,并与ORDER BY子句结合使用。
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
2.14 Mysql中ISAM是什么?
ISAM简称为索引顺序访问方法。
2.15 Mysql中有哪些存储引擎?
MyISAM
Heap
Merge
INNODB
ISAM
MyISAM是Mysql的默认存储引擎。
2.16 MYSQL中加入现在有一张表,ID为自增主键,当insert了20条数据之后,删除了第18、19、20条数据。然后Mysql重启,再insert一条数据,这条数据的ID是21还是18 ?
(1)如果是MylSAM引擎,此时ID为21
因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。
(2)如果表的类型是InnoDB,那么是18.
InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都程序之心会导致最大ID丢失.
2.17 Mysql的优势有哪些?
Mysql是开源、免费的。
Mysql是便携式的。
使用Mysql查询浏览器支持管理。
2.18 Mysql中FLOAT和DOUBLE怎么区分他们?
浮点数以8位精度存储在FLOAT中,并且有四个字节。
浮点数存储在DOUBLE中,精度为18位,有八个字节。
2.19 Mysql中CHAR_LENGTH和LENGTH怎么区分他们?
CHAR_LENGTH是字符数,而LENGTH是字节数。
Latin字符的这两个数据是相同的,但是对于Unicode和其他编码,它们是不同的。
2.20 Mysql中InnoDB支持的四种事务隔离级别及区别?
四个隔离级别为:
read uncommited :读到未提交数据
read committed:脏读,不可重复读
repeatable read:可重读
serializable :串行事物
四种事务隔离级别区别:
2.21 Mysql中枚举的用法是?
ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。
Create table size(name ENUM('Smail,'Medium','Large');
2.22 Mysql中CHAR和VARCHAR的区别?
CHAR和VARCHAR类型在存储和检索方面有所不同
CHAR列长度固定为创建表时声明的长度,长度值范围是1到255
当存储CHAR值时,长度不够时用空格填充,查询时删除填充空格。
2.23 Mysql中列的字符串类型可以有哪些?
SET
BLOB
ENUM
CHAR
TEXT
VARCHAR
2.24 Mysql中使用什么存储引擎?
存储引擎称为表类型,数据使用各种技术存储在文件中。
技术存储包含:
Storage mechanism
Locking levels
Indexing
Capabilities and functions.
2.25 Mysql中驱动程序有哪些?
PHP驱动程序
JDBC驱动程序
ODBC驱动程序
CWRAPPER
PYTHON驱动程序
PERL驱动程序
RUBY驱动程序
CAP11PHP驱动程序
Ado.net5.mxj
2.26 Mysql中MyISAM表格是存储在哪里的?有哪些存储格式?
MyISAM表格存储在磁盘上。
存储格式为:
·“.frm”文件存储表定义
·数据文件具有“.MYD”(MYData)扩展名
索引文件具有“.MYI”(MYIndex)扩展名
2.27 Mysql中如何运行批量处理模式?
mysql;
mysql mysql.out
2.27 Mysql中mysql_fetch_array和mysql_fetch_object的区别是什么?
mysql_fetch_array()
将结果行作为关联数组或来自数据库的常规数组返回。
mysql_fetch_object
从数据库返回结果行作为对象。
2.28 Mysql中BLOB和TEXT有什么区别?
BLOB是一个二进制对象,可以容纳可变数量的数据。
有四种类型的BLOB:
TINYBLOB
BLOB
MEDIUMBLOB和
LONGBLOB
TEXT不区分大小写的。
四种TEXT类型:
TINYTEXT
TEXT
MEDIUMTEXT和
LONGTEXT
它们对应于四种BLOB类型,并具有相同的最大长度和存储要求。
BLOB和TEXT区别主要就是大小写区分。
2.29 Mysql中LIKE和REGEXP操作有什么区别?
LIKE和REGEXP运算符用于表示^和%。
使用示例:
SELECT * FROM employee WHERE emp_name REGEXP "^b";
SELECT * FROM employee WHERE emp_name LIKE "%b";
2.30 Mysql中查询是否区分大小写?
不区分。
2.31 Mysql中查询受查询影响的行数?
SELECT COUNT(user_id)FROM users;
2.32 Mysql中LIKE声明中的%和_是什么意思?
%对应于0个或更多字符,_只是LIKE语句中的一个字符。
2.33 Mysql中表有一列定义为TIMESTAMP,将发生什么?
每当行被更改时,时间戳字段将获取当前时间戳。
2.34 Mysql中服务器性能分析的方法命令有哪些?
Show status
一些值的监控的变量值:
Bytesreceived和Bytessent
和服务器之间来往的流量。
Com*服务器正在执行的命令
Created*在查询执行期限间创建的临时表和文件。
Handler*存储引警操作。
Select不同类型的联接执行计划。
Sort*几种排序信息。
·Show session status like 'Select;
·Show profiles
SET profiling=1
Show profiles)G
Show profile;
2.35 怎样才能找出最后一次插入时分配了哪个自动增量?
LAST_INSERT_ID将返回由Auto_increment分配的最后一个值,并且不需要指定表名称。
相关推荐
- IM群聊消息如此复杂,如何保证不丢不重?
-
群聊是多人社交的基本诉求,不管是QQ群,还是微信群,一个群友在群内发了一条消息:(1)在线的群友能第一时间收到消息(2)离线的群友能在登陆后收到消息群消息的复杂度要远高于单对单消息。群消息的实时性,可...
- Python 网络爬虫实战:从零到部署的完整流程
-
适用人群:初-中级Python开发者、数据分析师、运维/测试自动化工程师工具栈:Python3.11+requests+BeautifulSoup/lxml+pandas+(...
- 用上Kiro之后,完全没理由为Cursor续费了
-
替Cursor续费前最后一秒,免费IDEKiro把钱包按死在屏幕前五位数年费的AI编程助手,被一匹黑马零元秒杀。用过Kiro的人,开note第一件事就是删掉Cursor的自动续费,动作快到连...
- 分布式微服务中的搜索引擎:架构与实战盘点
-
01、为什么微服务需要分布式搜索?在单体应用时代,我们通常使用单一数据库的全文检索功能(如MySQL的LIKE语句)或简单的搜索引擎(如早期的Lucene)。但随着业务规模扩大,这种架构暴露出诸多问题...
- 产品列表获取API接口详解
-
在现代软件开发中,API(应用程序编程接口)是获取产品列表的核心工具,它允许开发者从远程服务器高效地检索数据。本文将逐步介绍如何设计和使用产品列表获取API接口,包括核心概念、实现步骤、代码示例以及最...
- 企业和个人基于业务知识和代码库增强的大模型生成代码实践
-
作者:京东零售杨亚龙1.源起李明是今年刚加入某互联网公司的研发新人,满怀期待地开始了他的职业生涯。然而,短短两周后,他的热情就被现实浇了一盆冷水。第一周:当他第一次接手需求时,mentor只是简单...
- 从零到一:独立运行若依框架系统并进行本地二次开发
-
####一、环境准备1.**基础环境**:-JDK1.8+(推荐JDK17)-Maven3.6+-MySQL5.7+(推荐8.0)-Redis5.0+-Node.js16...
- 一文教你高效优化在Spring Boot3中遇到深度分页查询性能难题?
-
你有没有这样的经历?在使用SpringBoot3开发项目时,深度分页查询操作让程序运行得越来越慢,页面加载时间变得难以忍受,不仅影响用户体验,还可能导致项目进度受阻。明明代码逻辑看起来没问题,可...
- JAVA面试|如何优化limit分页
-
我们来详细通俗地聊聊如何优化LIMIToffset,size分页。核心问题在于OFFSET的值很大时,性能会急剧下降。想象一下数据库的工作方式,你就明白为什么了。一、为什么OFFSET大时慢?假...
- MySQL(143)如何优化分页查询?
-
优化分页查询是提升数据库性能和用户体验的重要手段。特别是在处理大数据集时,分页查询的效率对系统性能有显著影响。以下是优化分页查询的详细步骤和代码示例。一、传统分页查询传统的分页查询使用OFFSET...
- Seata概述
-
什么是SeataSeata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务也是SpringCloudAlibaba提供的组件Seata官方文档https...
- Docmost:一款开源的Wiki和文档协作软件
-
是一款开源的团队协作Wiki与文档管理工具,定位为Confluence和Notion的开源替代品,专注于提供高效、安全且可定制的知识库解决方案。Docmost的核心优势在于开源免...
- B端系统管理「字典管理」模块实战指南
-
字典管理听起来像“后端杂务”,其实是B端系统配置能力的关键支点。本指南将从真实业务场景出发,系统拆解该模块的设计逻辑、关键字段与典型坑位,让你一文读懂如何搭建一个能跑得久、配得稳的字典模块。一、字典管...
- Spring Boot 整合 Redis BitMap 实现 签到与统计
-
要在SpringBoot中实现RedisBitMap来进行签到和统计,您需要按照以下步骤进行操作:添加Redis依赖:在pom.xml文件中添加Redis依赖:<dependen...
- 周期性清除Spark Streaming流状态的方法
-
在SparkStreaming程序中,我们经常需要使用有状态的流来统计一些累积性的指标,比如各个商品的PV。简单的代码描述如下,使用mapWithState()算子:valproductPvSt...
你 发表评论:
欢迎- 一周热门
-
-
Redis客户端 Jedis 与 Lettuce
-
高并发架构系列:Redis并发竞争key的解决方案详解
-
redis如何防止并发(redis如何防止高并发)
-
Java SE Development Kit 8u441下载地址【windows版本】
-
开源推荐:如何实现的一个高性能 Redis 服务器
-
redis安装与调优部署文档(WinServer)
-
Redis 入门 - 安装最全讲解(Windows、Linux、Docker)
-
一文带你了解 Redis 的发布与订阅的底层原理
-
Redis如何应对并发访问(redis控制并发量)
-
Oracle如何创建用户,表空间(oracle19c创建表空间用户)
-
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (83)
- php redis (97)
- redis 存储 (67)
- redis 锁 (74)
- 启动 redis (73)
- redis 时间 (60)
- redis 删除 (69)
- redis内存 (64)
- redis并发 (53)
- redis 主从 (71)
- redis同步 (53)
- redis结构 (53)
- redis 订阅 (54)
- redis 登录 (62)
- redis 面试 (58)
- redis问题 (54)
- 阿里 redis (67)
- redis的缓存 (57)
- lua redis (59)
- redis 连接池 (64)