MySQL面试整理

索引的目的在于提高查询效率,以及添加约束;

常用的索引有:

普通索引,唯一索引,联合索引,全文索引,空间索引…

唯一索引 有两个分类 分别是:主键索引和唯一索引

联合索引 有三个分类 分别是:联合普通索引、联合主键索引、联合唯一索引

索引类型:

hash:查询单条快,范围查询慢

b+树:层级越多,数据量指数级增长

存储引擎:

InnoDB:支持事务,支持行级别锁定,支持 B+树 、支持全文(Full-text)索引、不支持hash

MyISAM:不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;

Memory

NDB:支持事务,支持行级别锁定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;

Archive

未命中索引:

模糊查询:%在查询条件前面

使用函数:REVERSE(email);

类型不一致:

!=、>、<

order by:如果对非主键列排序,则结果列也需要索引,如果对主键排序 则结果列可没有索引—

count:count()、count(1)、count(列名) 资料上说尽量不使用count(),但实测感觉区别不大

在创建表示 列类型是(text)时 必须指定长度,否则无法命中索引

组合索引时需要遵循(最左前缀原则);

覆盖索引:

select * from table_name where id = 123;

已知该表中的id字段已添加了索引,所以如上sql命中了索引,但是查询结果是*,如果想要查询效率更快 则需要覆盖索引:

select id from table_name where id = 123;

Original: https://www.cnblogs.com/ganguixu/p/15891738.html
Author: 干桂旭
Title: MySQL面试整理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591882/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 笔记-docker学习-2

    继续之前的docker学习 16、 docker commit从容器创建一个新的镜像 OPTIONS说明: -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像…

    数据库 2023年6月9日
    076
  • 史上最全面的mysql数据库下载安装教程(适合初学者)

    Original: https://www.cnblogs.com/chaichaichai/p/15330533.htmlAuthor: 牛仔码农Title: 史上最全面的mys…

    数据库 2023年5月24日
    097
  • centos8安装mysql

    前言 最近在centos8系统下部署django项目时,要用到mysql数据库,在安装中遇到了点坑,之后参考了一位博主的文章,也是顺利的安装配置成功,博主原文连接: ((20条消息…

    数据库 2023年5月24日
    085
  • 一文读懂Spring框架中依赖注入流程

    想读懂Spring的依赖注入流程,我们先简单了解一下Ioc和DI是什么? IoC和DI Ioc—Inversion of Control,即”控制反转”,不…

    数据库 2023年6月6日
    081
  • jdbc-使用java连接mysql

    package com.cqust; import com.mysql.jdbc.Driver; import java.sql.Connection;import java.sq…

    数据库 2023年5月24日
    061
  • MySQL架构

    1_逻辑架构 1.1.连接层 系统(客户端)访问MySQL服务器前,做的第一件事就是 &#x5EFA;&#x7ACB;TCP&#x8FDE;&#x6…

    数据库 2023年5月24日
    0100
  • 分布式全局唯一ID

    方案一、UUID UUID的方式能生成一串唯一随机32位长度数据,它是无序的一串数据,按照开放软件基金会(OSF)制定的标准计算,UUID的生成用到了以太网卡地址、纳秒级时间、芯片…

    数据库 2023年6月9日
    094
  • 工具 | 一条 SQL 实现 PostgreSQL 数据找回

    作者:张连壮 PostgreSQL 研发工程师从事多年 PostgreSQL 数据库内核开发,对 citus 有非常深入的研究。 快速恢复丢失的数据是数据库的重要功能要求,一般推荐…

    数据库 2023年5月24日
    089
  • redis cluster和hash slot

    redis cluster介绍 从redis3.0.0开始,官方支持了redis cluster的集群模式,结束了redis没有集群的时代。 redis cluster 支撑 N …

    数据库 2023年6月9日
    0156
  • MySQL45讲之更新缓存

    本文介绍 MySQL的更新缓存 Change Buffer,以及唯一索引和普通索引如何选择。 唯一索引和普通索引的选择 查询过程 在唯一索引下,查询索引树,找到第一个匹配的行并返回…

    数据库 2023年5月24日
    089
  • 10、比较Bigdecimal类型是否相等的方法

    一、Bigdecimal.equals()详解: Bigdecimal的equals方法不仅仅比较值的大小是否相等,首先比较的是scale(scale是bigdecimal的保留小…

    数据库 2023年6月6日
    086
  • MySQL InnoDB索引原理

    数据库与I/O原理 数据会持久化到磁盘,查询数据是就会有I/O操作,相对于缓存操作,I/O操作的时间成本相当高昂。 I/O操作的基本单位是一个磁盘页面,比如16KB的页面大小。当数…

    数据库 2023年5月24日
    089
  • Background process terminated with code 1.

    使用vscode过程中,刷新maven依赖过程中,出现了如下错误信息: Background process terminated with code 1. 图1. maven插件…

    数据库 2023年6月14日
    072
  • 设计模式之七大原则

    1.单一职责原则: 不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责 使用一个列子来表达,一个动物类,动物可以使用里面的方法进行奔跑: //单一职责原则测试 pu…

    数据库 2023年6月6日
    0105
  • MySQL中常用的数据类型

    在写sql语句的时候,数据类型是避不可少的一个环节,以下是我在学习的过程中总结的数据类型,仅供参考: 数值类型 您可以在上表中看到,每种类型都有其对应的范围。如果它大于某个值,则不…

    数据库 2023年5月24日
    089
  • Javaer 面试必背系列!超高频八股之三色标记法

    可达性分析可以分成两个阶段 根节点枚举 从根节点开始遍历对象图 前文提到过,在可达性分析中,第一阶段 “根节点枚举” 是必须 STW 的,不然如果分析过程中…

    数据库 2023年6月6日
    0104
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球