说到索引,我们在上一篇文章里面早就介绍过,mysql的数据底层全是存储在磁盘中间的,而且不同的存储引擎可能有不同的索引存储方式。我们就来简单了解了解索引的底层原理。 因为是在磁盘,所以避免不了要先了解磁盘的基础,而且我们要知道频繁的从磁盘IO会有很大的时间开销,而且mysql数据大时,怎么保证根据索引查询的索引非常快,这是一个很重要的问题 磁盘存储知识目
转载
2023-11-02 12:54:36
44阅读
0 前言在学习网络编程时,我们总是从最简单的Server程序写起:socket -> bind -> listen -> accept -> read -> write -> return再接下来,就是学习如何处理客户端的并发请求。主要思路有:使用多线程/多进程模型使用IO多路复用模型使用多线程 + IO多路复用模型其中,使用IO多路复用模型,我们总是从sele
转载
2024-08-10 08:23:23
65阅读
一、索引概述索引即一本书的目录,我们通过书的目录能够快速的查到对应文章的页码。数据库的索引也差不多,通过在某些字段建立索引,可以快速的查找某些特定的数据,避免全表搜索。因为数据库表的数据在磁盘文件中,会将对应数据读取到内存中进行检索,全表搜索会带来更多的IO操作,比较耗时,应尽量避免IO操作。MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。索引是在存储引擎中
转载
2023-06-16 15:28:21
98阅读
MySQL Galera 是一种高可用和可扩展的分布式数据库解决方案,结合了 MySQL 的强大功能和 Galera 的高效多主复制特性。它利用数据在多个节点的同步,使得读写操作具有较强的一致性。同时,Galera 可以容忍故障,提高了系统的可靠性。这篇博文将深入探讨 MySQL Galera 的内部原理,带领读者理解其架构、工作流程及应用场景。
## 背景描述
MySQL Galera 是一
前言本文将分析mvcc的机制和工作原理并举例说明。话不多说,直入主题MVCC机制是什么MVCC,英文全称Multiversion Concurrency Control,多版本并发控制。简单理解,就是相当于给我们的MySQL数据库拍个“快照”,定格某个时刻数据库的状态
为什么要拍快照?
为了保证事务启动到结束整个生命周期看到的数据是一致的, 一般有两种方案:
MySQL对数据“读-写”的时候
转载
2023-09-25 11:09:37
179阅读
一.MySQL整体逻辑架构我们先下图看看MySQL整体逻辑架构(MySQL’s Logical Architecture) 图1 第一层:连接层,所包含的服务并不是MySQL所独有的技术。它们都是服务于C/S程序或者是这些程序
转载
2023-08-16 22:25:26
104阅读
MySQL排序其实是一个老生长谈的问题了,但是我们这次想由浅入深详细的说说MySQL排序模式,怎么影响MySQL选择不同的排序模式和怎么优化排序。
转载
2021-07-23 17:45:58
520阅读
Select模型原理利用select函数,判断套接字上是否存在数据,或者能否向一个套接字写入数
转载
2022-09-18 09:33:51
118阅读
理利用select函数,判断套接字上是否存在数据,或者能否向一个套接字写入数据。目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据,被迫进入阻塞状态。 select参数和返回值意义如下:i
原创
2023-04-10 14:23:54
38阅读
Linux中的select函数是一种I/O多路复用机制,能够让一个进程等待多个文件描述符上的事件发生。这种机制在网络编程中特别有用,因为当一个进程需要处理多个网络连接时,可以通过select来管理这些连接。
select函数的原理是通过传入三个fd_set类型的参数,分别表示可读、可写和异常事件。select会阻塞进程,直到其中一个文件描述符上发生了事件,或者超时。一旦有事件发生,select会
原创
2024-04-23 10:53:22
76阅读
Select模型原理利用select函数,推断套接字上是否存在数据,或者是否能向一个套接字写入数据。目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据,被迫进入堵塞状态。select參数和返回值意义例如以下:int select (IN int nfds...
转载
2014-07-02 14:52:00
199阅读
2评论
我们先说一下通过select实现单进程服务器并发的流程: 1)创建监听套接字listenfd 2)对套接字listenfd进行地址数据赋值并且bind。 3)对套接字listenfd进行 监听listen 4)创建 fd_set 变量 all_set,先对变量all_set 进行赋初值 listenfd,也就是让sele
转载
2024-07-04 18:21:47
33阅读
解密MySQL排序原理
转载
2021-07-30 15:51:48
340阅读
http://www.ohsdba.cn/index.php?m=Article&a=index&id=46 内部原理 2016-05-04• 如何使用BBED 2016-04-16• Understanding Datafile Header kcvfh structure 2016-03-30•
转载
2017-01-26 16:02:00
139阅读
2评论
Zookeeper内部原理
原创
2022-09-09 14:34:07
120阅读
一、ARouter含义简单说就是映射页面跳转关系的一个中间件,其中包含有一些跳转时的辅助功能(参数传递、动画、拦截器、服务绑定、碎片对象获取等)。二、原理 / 流程ARouter内部使用了注解处理工具APT(Annotation Processing Tool )技术,在代码编译期间对注解进行处理,生成JAVA文件,形成映射关系类。_ARouter中的init方法内,通过系统ClassUtils寻
# MySQL中的存储过程与SELECT语句的使用
在MySQL中,存储过程是一种可存储在数据库中的SQL代码块,它可以被多次调用,具有提高代码重用性和维护效率的优势。在存储过程中,程序员通常会希望执行一些查询操作以获取和处理数据。那么,问题来了:在MySQL的存储过程中,我们是否可以使用SELECT语句呢?答案是肯定的,存储过程内部可以自由使用SELECT语句,下面将通过示例进行详细说明。
映射文件指导着MyBatis如何进行数据库增删改查,有着非常重要的意义。<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
&l
Mysql逻辑架构从mysql的原理入手,先看一张经典的图: 下面是关于上图的介绍: 1.客户端connectors 与其他编程中的sql语句进行交互,如:java、php; 每个客户端链接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行,该线程只能轮流在某个CPU核心或CPU中运行。服务器会负责缓存线程,因此不需要为每一个新建的连接创建和销毁线程。 一般情况,客户
转载
2023-08-11 11:16:37
58阅读
MySQL查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。 你的最终目标是提交SELECT语句查找数据行,而不是排除数据行。优化器试图排除数据行的原因在于它排除数据行的速度越快,那么找到与条件匹配的数据行也就越快。 如何 更好的 利用索引: 1:尽量比较数据类型相同的数据列。当你在比较操作中使用索引数据列的时候,请