返回顶部
首页 > 资讯 > 数据库 >执行一句SQL的情况有哪些
  • 377
分享到

执行一句SQL的情况有哪些

2024-04-02 19:04:59 377人浏览 安东尼
摘要

这篇文章主要介绍执行一句sql的情况有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!零、数据库驱动Mysql 驱动在底层帮我们做了对数据库的连接,只有建立了连接了,才能够有后面的

这篇文章主要介绍执行一句sql的情况有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

零、数据库驱动

  • Mysql 驱动在底层帮我们做了对数据库的连接,只有建立了连接了,才能够有后面的交互。

一、数据库连接池

  • 数据库连接池有 Druid、C3P0、DBCP

  • 采用连接池大大节省了不断创建与销毁线程的开销,这就是有名的「池化」思想,不管是线程池还是 Http 连接池,都能看到它的身影

二、SQL 接口

  • mysql 中处理请求的线程在获取到请求以后获取 SQL 语句去交给 SQL 接口去处理。

三、查询解析器

  • 将 SQL 接口传递过来的 SQL 语句进行解析,翻译成 MySQL 自己能认识的语言。

四、MySQL 查询优化器

  • MySQL 会依据成本最小原则来选择使用对应的索引

  • 成本 = io 成本 + CPU 成本

  • IO成本 : 即从磁盘把数据加载到内存的成本,默认情况下,读取数据页的 IO 成本是 1,MySQL 是以页的形式读取数据的,即当用到某个数据时,并不会只读取这个数据,而会把这个数据相邻的数据也一起读到内存中,这就是有名的程序局部性原理,所以 MySQL 每次会读取一整页,一页的成本就是 1。所以 IO 的成本主要和页的大小有关

  • CPU 成本:将数据读入内存后,还要检测数据是否满足条件和排序等 CPU 操作的成本,显然它与行数有关,默认情况下,检测记录的成本是 0.2。

  • MySQL 优化器 会计算 「IO 成本 + CPU」 成本最小的那个索引来执行

五、存储引擎

  • 查询优化器会调用存储引擎的接口,去执行 SQL,也就是说真正执行 SQL 的动作是在存储引擎中完成的

  • 数据是被存放在内存或者是磁盘中的

  • 每次在执行 SQL 的时候都会将其数据加载到内存中,这块内存就是 InnoDB 中一个非常重要的组件:缓冲池 Buffer Pool

六、执行器

  • 执行器最终最根据一系列的执行计划去调用存储引擎的接口去完成 SQL 的执行

执行一句SQL的情况有哪些

七、Buffer Pool

  • Buffer Pool (缓冲池)是 InnoDB 存储引擎中非常重要的内存结构,起到一个缓存的作用

  • Buffer Pool 就是我们第一次在查询的时候会将查询的结果存到 Buffer Pool 中,这样后面再有请求的时候就会先从缓冲池中去查询,如果没有再去磁盘中查找,然后在放到 Buffer Pool 中

  • Buffer Pool中被使用的数据回被加
    执行一句SQL的情况有哪些

八、三个日志文件

1、undo 日志文件:记录数据被修改前的样子

执行一句SQL的情况有哪些

2、redo 日志文件:记录数据被修改后的样子

  • redo 记录的是数据修改之后的值,不管事务是否提交都会记录下来

  • MySQL 为了提高效率,所以将这些操作都先放在内存中去完成,更新后的数据会记录在 redo log buffer 中,然后会在某个时机将其持久化到磁盘中。
    执行一句SQL的情况有哪些

3、bin log 日志文件: 记录整个操作过程

性质redo Logbin Log
文件大小redo log 的大小是固定的(配置中也可以设置,一般默认的就足够了)bin log 可通过配置参数max_bin log_size设置每个bin log文件的大小(但是一般不建议修改)。
实现方式redo logInnoDB引擎层实现的(也就是说是 Innodb 存储引起过独有的)bin log是 MySQL 层实现的,所有引擎都可以使用 bin log日志
记录方式redo log 采用循环写的方式记录,当写到结尾时,会回到开头循环写日志。bin log 通过追加的方式记录,当文件大小大于给定值后,后续的日志会记录到新的文件上
使用场景redo log适用于崩溃恢复(crash-safe)(这一点其实非常类似与 Redis 的持久化特征)bin log适用于主从复制和数据恢复

bin log 记录的是整个操作记录(这个对于主从复制具有非常重要的意义)

以上是“执行一句SQL的情况有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 执行一句SQL的情况有哪些

本文链接: https://lsjlt.com/news/55050.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 执行一句SQL的情况有哪些
    这篇文章主要介绍执行一句SQL的情况有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!零、数据库驱动MySQL 驱动在底层帮我们做了对数据库的连接,只有建立了连接了,才能够有后面的...
    99+
    2024-04-02
  • 导致sql执行速度慢的情况有哪些
    这篇文章主要介绍了导致sql执行速度慢的情况有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇导致sql执行速度慢的情况有哪些文章都会有所收获,下面我们一起来看看吧。1,数据...
    99+
    2023-03-10
    sql
  • c#中finally不执行的情况有哪些
    在C#中,finally块中的代码应该会被执行,除非发生以下情况: 程序被强制终止:如果程序被强制终止(如使用kill命令、任务...
    99+
    2024-04-08
    c#
  • SQL语句的执行方式有哪些
    SQL语句的执行方式有以下几种:1. 交互式执行:即通过命令行或者可视化工具直接输入SQL语句并执行,结果即时显示。2. 批处理执行...
    99+
    2023-09-23
    SQL
  • 怎么查看sql的执行情况
    要查看SQL的执行情况,可以使用以下方法:1. 使用数据库管理工具:大多数数据库管理工具(如MySQL Workbench、Navi...
    99+
    2023-10-24
    sql
  • 怎么查看mysql语句执行情况
    你可以通过以下方法查看MySQL语句的执行情况: 使用MySQL的查询日志:在MySQL配置文件中开启general_log参数...
    99+
    2024-04-09
    mysql
  • SQL索引失效的情况有哪些
    这篇文章主要介绍了SQL索引失效的情况有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SQL索引失效的情况有哪些文章都会有所收获,下面我们一起来看看吧。数据库调优的大致方向:索引失效,没有充分利用到索引&a...
    99+
    2023-07-05
  • Python中一条SQL语句执行得很慢的原因有哪些
    Python中一条SQL语句执行得很慢的原因有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考...
    99+
    2023-06-02
  • MySQL SQL语句查询执行过程的阶段有哪些
    这篇文章将为大家详细讲解有关MySQL SQL语句查询执行过程的阶段有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1.语法分析阶段:...
    99+
    2024-04-02
  • session失效的情况有哪些
    会话失效的情况有以下几种:1. 超时:如果用户在一段时间内没有与服务器进行通信,会话可能会超时并失效。超时时间可以根据系统的需求进行...
    99+
    2023-09-21
    session
  • Redis阻塞的情况有哪些
    这篇文章主要介绍“Redis阻塞的情况有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Redis阻塞的情况有哪些”文章能帮助大家解决问题。命令阻塞使用不当的命令造成客户端阻塞:keys * :获...
    99+
    2023-07-05
  • 一条SQL语句执行过程
    目录一、MySQL 体系架构- 连接池组件- 缓存组件- 分析器- 优化器- 执行器二、写操作执行过程三、读操作执行过程四、SQL执行顺序一、MySQL 体系架构 - 连接池组件 ...
    99+
    2024-04-02
  • VB.NET中有哪些可执行语句
    今天就跟大家聊聊有关VB.NET中有哪些可执行语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。VB.NET可执行语句执行一项操作。它调用过程、分支到代码中的另一个位置、循环执行多个...
    99+
    2023-06-17
  • MySQL主从复制不一致的情况有哪些
    这篇文章给大家分享的是有关MySQL主从复制不一致的情况有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1.网络的延迟由于mysql主从复制是...
    99+
    2024-04-02
  • javascript深拷贝的情况有哪些
    这篇“javascript深拷贝的情况有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“javascript深拷贝的情况有...
    99+
    2023-06-26
  • mysql锁失效的情况有哪些
    MySQL锁失效的情况主要有以下几种: 死锁:当多个事务互相等待对方持有的锁资源时,可能会产生死锁。MySQL会自动检测到死锁,...
    99+
    2023-10-24
    mysql
  • MySQL查询语句的执行过程有哪些
    本篇文章为大家展示了MySQL查询语句的执行过程有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。查询请求的执行流程众所周知在MySQL数据库应用中查询请求是使用...
    99+
    2024-04-02
  • MySQL优化语句执行的方法有哪些
    这篇文章主要介绍“MySQL优化语句执行的方法有哪些”,在日常操作中,相信很多人在MySQL优化语句执行的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL优...
    99+
    2024-04-02
  • python执行sql语句里字符串格式化是否添加单引号的两种情况
        1 1 import pymysql 2 2 3 3 db = pymysql.connect(host=‘localhost‘, user=‘root‘, password=‘123456‘, database=...
    99+
    2020-02-21
    python执行sql语句里字符串格式化是否添加单引号的两种情况 数据库入门 数据库基础教程 数据库 mysql
  • ie6出现错位的情况有哪些
    今天就跟大家聊聊有关ie6出现错位的情况有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。由于IE6的使用人群非常广泛,这就导致所有的网站开发人员...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作