MySQL 面试题汇总

1.说一下 MySQL 执行一条查询语句的内部执行过程?

答:MySQL 执行一条查询的流程如下:

  • 客户端先通过连接器连接到 MySQL 服务器;
  • 连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前执行过此语句)则直接返回缓存数据,如果没有缓存则进入分析器;
  • 分析器会对查询语句进行语法分析和词法分析,判断 SQL 语法是否正确,如果查询语法错误会直接返回给客户端错误信息,如果语法正确则进入优化器;
  • 优化器是对查询语句进行优化处理,例如一个表里面有多个索引,优化器会判别哪个索引性能更好;
  • 优化器执行完就进入执行器,执行器则开始执行语句进行查询比对了,直到查询到满足条件的所有数据,然后进行返回。

2.MySQL 查询缓存有什么优缺点?

答:MySQL 查询缓存功能是在连接器之后发生的,它的优点是效率高,如果已经有缓存则会直接返回结果。

查询缓存的缺点是失效太频繁导致缓存命中率比较低,任何更新表操作都会清空查询缓存,因此导致查询缓存非常容易失效。

3.MySQL 的常用引擎都有哪些?

答:MySQL 的常用引擎有 InnoDB、MyISAM、Memory 等,从 MySQL 5.5.5 版本开始 InnoDB 就成为了默认的存储引擎。

4.常用的存储引擎 InnoDB 和 MyISAM 有什么区别?

答:InnoDB 和 MyISAM 最大的区别是 InnoDB 支持事务,而 MyISAM 不支持事务,它们其他主要区别如下:

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545589.shtml

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    几种简单电路知识汇总

    这篇文章用于记录平时设计电路或者在书中遇到的一些电路方面的知识,会不定期更新。就先从运算放大器开始,对此做个简单的介绍。 运算放大器 说到运算放大器就不得不说两个概念,虚短与虚断。 虚短: 在理想情况下,运算…

    Oracle 创建表 练习题

    a) 建立下列教学管理用的数据表。注意,表名和字段名都是英文。 学生表(student) 字段 名称 数据类型 约束 学号 S_NO CHAR(6) 主键 姓名 S_NAME CHAR(10) 非空 性别 S_SEX CHAR(2) 只取男、女 出生日期 S_BIRTHDAY DA…

    算法常用面试题汇总

    1.说一下什么是二分法?使用二分法时需要注意什么?如何用代码实现? 二分法查找(Binary Search)也称折半查找,是指当每次查询时,将数据分为前后两部分,再用中值和待搜索的值进行比较,如果搜索的值大于中值,则使用同样的方式(二分法)向后搜索,反之则向前搜索,直到搜…

    Java LocalDateTime类| 带示例的getDayOfYear()方法

    LocalDateTime类getDayOfYear()方法 (LocalDateTime Class getDayOfYear() method) getDayOfYear() method is available in java.time package. getDayOfYear()方法在java.time包中可用。 getDayOfYear() method is used to get the field value day-of-year from this date-t…

    51单片机——交通灯

    原理图 功能描述 1、基本功能就是如同红绿灯一般,不做赘述。   2、红灯时长和绿灯时长可通过按键设置,即按键列中的上面4个,当这4个按键有一个按下后便进入时长设置功能,设置完成后按最下面两个按键(紧急控制按钮&am…

    设置TextField内文字距左边框的距离

    2019独角兽企业重金招聘Python工程师标准>>> //设置文本框左边的viewUITextField *textField [[UITextField alloc]init];textField.frame CGRectMake(10, 30, 300, 30);[self.view addSubview:textField];textField.leftView [[UIView alloc]initWithFrame:CGRe…

    Oracle注册表修改 乱码编码

    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0"NLS_LANG"值改为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK"AMERICAN.AL32UTF8乱码更改oracle 10g装上后,建了个表写入中文数据,发现通过工具DbVisualizer 6.5 写入/读取中文都正常,就sqlplus和PL/SQL Developer不正常…

    设计模式常见面试题汇总

    1.说一下设计模式?你都知道哪些? 答:设计模式总共有 23 种,总体来说可以分为三大类:创建型模式( Creational Patterns )、结构型模式( Structural Patterns )和行为型模式( Behavioral Patterns )。 分类包含关注点创建型模式工厂模式、抽象工厂模式、单例模式、建…

    java 根据类名示例化类_Java LocalDateTime类| minusMinutes()方法与示例

    java 根据类名示例化类LocalDateTime类minusMinutes()方法 (LocalDateTime Class minusMinutes() method) minusMinutes() method is available in java.time package. minusMinutes()方法在java.time包中可用。 minusMinutes() method is used to subtract the given minutes …

    类的三大特性

    类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一、封装 学习过Java中类的同学可能都知道了,封装就是对类中的一些字段&a…

    JVM 面试题汇总

    1.什么是 JVM?它有什么作用? 答:JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,顾名思义它是一个虚拟计算机,也是 Java 程序能够实现跨平台的基础。它的作用是加载 Java 程序,把字节码翻译成机器码再交由 CPU 执行的一个虚拟计算器。 2.JVM 主要组成部分有哪些? …

    Java BigInteger类| isProbablePrime()方法与示例

    BigInteger类isProbablePrime()方法 (BigInteger Class isProbablePrime() method) isProbablePrime() method is available in java.math package. isProbablePrime()方法在java.math包中可用。 isProbablePrime() method is used to check whether this BigInteger is probab…

    20141215胡思乱想

    书读得越多,越发现自己无知。 我们的就像在一个空白的圆里面,周围都是黑暗,不断成长,圆会越来越大,接触到的黑暗会越多。所以要时刻保持谦逊。 Stay Hungry, Stay Foolish!! 时刻要思考,不要急于求成。 转载…

    常见面试题翻车合集

    1.去掉 main 方法的 static 修饰符,程序会怎样? A:程序无法编译 B:程序正常编译,正常运行 C:程序正常编译,正常运行一下马上退出 D:程序正常编译,运行时报错 答:D 题目解析:运行时异常如下: 错误: main 方法不是类 xxx 中的 static, 请将 main 方法定义为: p…

    c语言i++和++i程序_使用C ++程序从链接列表中消除重复项

    c语言i和i程序Given a sorted linked list (elements are sorted in ascending order). Eliminate duplicates from the given LL, such that output LL contains only unique elements. 给定一个排序的链表(元素按升序排序)。 从给定的LL中消除重复项,以便输出LL仅…

    struts的开发模式

    <constant name"struts.devMode" value"true" /> struts.devMode也就是struts的开发模式&#xff0c;默认值为false&#xff0c;这里修改为true就可以了&#xff0c;以后一旦就该这个文件中的配置就不用去重启tomcat。struts2.1的bug&#xff0c;tom…

    nginx启动与停止

    转自&#xff1a;http://www.nginx.cn/nginxchscommandline#commandnginx启动sudo /usr/local/nginx/nginx (nginx二进制文件绝对路径&#xff0c;可以根据自己安装路径实际决定)nginx从容停止命令&#xff0c;等所有请求结束后关闭服务ps -ef |grep nginxPID PPID USER …

    编程c语言 十进制转八进制_使用C编程语言处理八进制值

    编程c语言 十进制转八进制Octal value has 8 digit values from 0 to 7, with the base 8. (Read more about Computer number systems), here we will learn how to work with octal values in c programming language? 八进制值具有从0到7的8位数字&#xff0c;以8为底。(阅…

    加餐 | Java 面试通关攻略

    面试分为三个重要的阶段: 面试前准备面试中表现面试后复盘做好这三个阶段的准备,相信一定会有很大的收获。下面来分别看看这三个阶段需要准备哪些内容。 一. 面试前准备 1. 研究待面试的公司 所谓知己知彼方能百战不殆,对待面试同样如此,企业希望招聘的人能够直接上手工…

    java中_null和“”的区别详解

    null和""的区别 问题一&#xff1a; null和""的区别 String snull; string.trim()就会抛出为空的exception String s""; string.trim()就不会抛,为什么? 答&#xff1a; NULL代表声明了一个空对象&#xff0c;根本就不是一个字符串。 …