当前位置: 首页 > news >正文

【mysql数据库全部重点知识】

二十三——二十五天

mysql数据库

一、数据库底层实现原理

1.你对数据库的了解,用了什么么存储引擎区别是什么 .

1、InnoDB和MyISAM是MySQL中的比较常用两个存储引擎,MyISAM适用于查询为主的应用,InnoDB适合频繁修改及涉及到安全性较高的应用。

2、InnoDB支持事务,MyISAM不支持。

3、InnoDB是聚集索引,MyISAM是非聚集索引。InnoDB中索引和数据在一起,MyISAM采用了一种索引和数据分离存储方式。

4、InnoDB最小的粒度锁是行锁,MyISAM是表锁。

5、InnoDB不保存行数,MyISAM保存。

2.关系型数据库和非关系型数据库的区别?

关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户管理并且能保证ACID。

非关系型数据库的存储方式是基于键值来存储的,对于值的类型也有不同的支持,所以没有固定的要求和限制不能保证ACID。

3.一级索引(聚簇索引)和二级索引(非聚簇索引)

一级索引B+树叶子节点直接存储完整行数据,查到数据时会直接返回。 innoDB只有一个聚簇索引。

二级索引叶子节点存储的是主键值而非行数据,它会根据主键去一级索引查找数据并返回数据,这步骤称作回表。一个表可以有多个二级索引。

4.什么是回表? 怎么减少回表?

回表发生在使用用二级索引查找数据时,二级索引叶子节点存储的是主键值而非行数据,它会根据主键去一级索引查找数据并返回数据,这步骤称作回表。

通过索引覆盖和索引下推减少回表。

1、索引覆盖:指的是一个查询语句的执行只用从索引中获取,不必从数据库表中读取。

2、索引下推:默认开启。(zipcode, lastname, address)构成一个索引

SELECT FROM people WHERE zipcode="95" AND lastname LIKE '%etnunia%' AND address LIKE '%Main Street%'

没有索引下推则MySQL会通过zipcode从存储引擎中查询对应数据,返回到MySQL服务端,然后MySQL服务端基于后半部分查数据。如果使用索引下推,会返回索引数据,然后根据后半部分依次判断。

5.一条sql语句执行过程?

1、使用连接器,通过客户端/服务端通信协议与MySQL建立连接,并查询是否有权限

2、MySQL 8.0之前检查是否开启缓存,开启了Query Cache且命中完全相同的SQL语句,则直接将查询结果返回给客户端

3、由解析器进行语法分析和语义分析,并生成解析树,预处理器则会根据MySQL规则进一步检查解析树是否合法,比如要查的表或列是否存在

4、由优化器生成执行计划,根据索引看看是否可以优化

5、执行器来执行SQL语句,这里具体的执行操作由MySQL的存储引擎来执行SQL语句,根据存储引擎得到结果,若开启Query Cache,则缓存,否则直接返回

二、SQL语言怎么使用

3.SQL语言的分类?

序号 分类 解析
1 DDL(Data Definition Language) 数据定义语言,用来定义数据库对象(数据库、表、列)
2 DML(Data Manipulation Language) 数据操作语言,用于操作数据库记录(数据)
3 TCL (Transaction Control Language) 事务控制语言,用于保证数据的完整性约束。(commit,rollback)
4 DCL(Data Control Language) 数据控制语言,用于定义访问权限和安全级别
5 DQL(Data Query Language) 数据查询语言,用于查询记录(数据)

3.1DDL

  • 对象: 指的就是库,表,列。

  • 结构:库的创建,删除,修改,更名 以及, 表创建,表删除,表修改(列名修改,添加新列,删除新列)

  • 对应的关键字:create、alter、drop 其后都跟着对象的关键字,比如 database、table

  • 数据类型

    类型名 解释 占磁盘空间 有符号支持的范围 无符号支持的范围
    TINYINT 微型整数类型 1字节大小 -128 ~ 127 0 ~ 255
    SMALLINT 小型整数类型 2字节大小 -32768 ~ 32767 0 ~ 65535
    MEDIUMINT 中型整数类型 3字节大小 -8388608 ~ 8388607 0 ~ 16777215
    INT、INTEGER 常规整数类型 4字节大小 -2147483648 ~ 2147483647 0 ~ 4294967295
    BIGINT 大型整数类型 8字节大小 -2^63^ ~ 2^63^-1 0 ~ 2^64^-1

小数类型:

  • FLOAT:浮点数数据类型;FLOAT(n):如果0 <= n <= 24占用4 bytes,如果25 <= b <= 53占用8 bytes;FLOAT:不指定位数个数则可占用4 bytes;FLOAT(M,N):M表示总位数,N表示小数位数。

  • DOUBLE:双精度小数类型;占用8 bytes;DOUBLE(M,N):M表示总位数,N表示小数位数;

  • DECIMAL(M,D), NUMERIC(M,D):小数数据类型;占用0 ~ 8 bytes;DECIMAL(M,N):M表示总位数,N表示小数位数。

BIT类型:

  • BIT(M):存储BIT值的数据类型,M的取值范围是1 ~ 64;占用(M+7)/8 bytes

日期和时间类型

  • DATE:存储日期,格式为:yyyy-mm-dd;MySQL 5.6.4版本之前占用3 bytes,MySQl 5.6.4版本之后占用3 bytes

  • TIME:存储时间,格式为:HH:MM:SS;MySQL 5.6.4版本之前占用3 by

http://www.dtcms.com/a/333476.html

相关文章:

  • 企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
  • 昆仑万维重磅发布Mureka V7.5与MoE-TTS,AI音乐与语音合成再升级!
  • 嵌入式学习 day52 IMX6ULL裸机开发-I2C
  • 基于Spring Boot的智能民宿预订与游玩系统设计与实现 民宿管理系统 民宿预订系统 民宿订房系统
  • 蓝桥杯 二叉树
  • [ CSS 前端 ] 网页内容的修饰
  • linux下找到指定目录下最新日期log文件
  • liteflow
  • CSS从入门到精通完整指南
  • 【学习笔记】Java并发编程的艺术——第8章 Java中的并发工具类
  • Python工具箱系列(六十二)
  • 写作在学习中的重要性
  • 【完整源码+数据集+部署教程】脑部健康状态检测系统源码和数据集:改进yolo11-AIFI
  • 力扣top100(day04-05)--堆
  • **标题:发散创新之力,探索隐私计算的未来**隐私计算,作为当下数字化时代的热门话题,正受
  • MCP简单入门及简单操作案例(高德地图调用实现酒店查询天气查询等[Lima]示范)
  • 在执行部署脚本后,通过 ls -la 命令查看远程服务器文件时,显示的文件所有者是 games 而不是预期的 root 用户
  • 二、DOCKER常用命令
  • 最长递增子序列-dp问题+二分优化
  • Vue 侦听器(watch 与 watchEffect)全解析1
  • 【161页PPT】智慧方案企业数字化转型概述(课件)(附下载方式)
  • pcl法线估计的踩坑
  • 【GPT入门】第47课 大模型量化中 float32/float16/uint8/int4 的区别解析:从位数到应用场景
  • 《P1194 买礼物》
  • PyTorch的安装-CPU版本或者GPU安装有什么区别吗
  • 口播数字人免费API调用方案
  • Docker的相关知识探究详解
  • 【功能更新】“弹性互联网”正式上线Fusion WAN平台
  • Oracle按照特定列值排序和C#统计特定列值的所有行
  • 数据结构:N叉树 (N-ary Tree)