首页 > 其他分享 >工作中知识点总结

工作中知识点总结

时间:2023-11-13 14:55:54浏览次数:29  
标签:总结 知识点 索引 lastname 工作 redolog 数据 双写

       在DBA工作中遇到的问题千奇百怪,可能有些问题是比较常见的,我们一下子就能知道其中的问题关键点所在,但是有些问题的出现并不一定我们可以很快的了解到其中的根本问题,所以需要总结工作中需要用到的知识点,经常查一查看一看。

MYSQL 知识点

  1. MYSQL的WAL机制(日志先行),主要涉及到redolog、logbuffer,redolog的刷盘机制,由参数innodb_flush_log_at_trx_commit 控制           ·     当值为0,提交事务不会刷盘到redolog,需要每隔一秒的后台线程,将logbuffer 写到操作系统的cache,并调用fsync落盘,性能最好,但是可能会丢1s的数据   ,这个配置主要用到了,多个事务共同提交,所以性能比较好                                                                                                   ·     当值为1,提交事务就刷到操作系统cache,并且调用fsync落盘,性能最差,但是可以保证不丢失数据,这是默认配置                                     ·     当值为2,提交事务就刷到操作系统cache,但是不调用fsync落盘,而是每间隔1秒调用fsync落盘,这种的话可以保证数据库宕机数据不丢失,但是服务器如果挂了就丢1s数据        (补充一下redolog不需要双写,因为redolog写入磁盘是512字节,已经是系统io的最小单位了,不会出现宕机数据写入一半问题)                               
  2. mysql 双一机制  这里主要说一下log-sync 设置为0,类似与把日志交给操作系统去自动刷新,log-sync为N>0相当于有N个事务提交之后统一刷新到磁盘中,这种方式相当于组刷盘比较快
  3. MYSQL 的双写机制。                                                                                                                                                                                           ·     为什么要存在双写呢?因为如果buffer pool 直接把脏数据从内存写入到数据库中,但是数据库存在磁盘中,磁盘中一个数据库大小为最大为4k,那么mysql内存中一个数据页为16k,16k在往4K页面写入数据时候要分4此io,那么如果这4此io只写进去了8k,那么在数据恢复时候会造成数据不一致问题,所以开发出来了双写机制如下图

    第一步、如果有脏数据要刷盘先拷贝到doublewrite buffer中。第二步、接着从两次写缓冲区分两次写入磁盘共享表空间(顺序写),每次写1M。第三步、把脏数据离散写到实际的数据文件中                                        双写崩溃恢复只需要把doublewrite中找到最近的副本,将其复制到表空间文件,在应用redolog就完成mysql的恢复

  4. ICP(索引下推),举个栗子
    SELECT * FROM people
      WHERE zipcode='95054'
      AND lastname LIKE '%etrunia%'
      AND address LIKE '%Main Street%';

    如果有一个复合索引 zipcode,lastname 上边这个sql你会发现其实呢lastname不能走索引,因为他不满足最左前缀原则,但是mysql发明了ICP,可以在不回表的条件下,把复合索引zipcode,lastname 通过 lastname like '%etrunia%' 在进一步过滤,进一步减少回表的行数,这种在复合索引中把where条件中不满足走这个复合索引的条件进行filter操作,叫ICP;

ORACLE 知识点

PYTHON 知识点

REDIS 知识点

标签:总结,知识点,索引,lastname,工作,redolog,数据,双写
From: https://www.cnblogs.com/dbahrz/p/17823496.html

相关文章

  • 快速幂、龟速乘总结
    快速幂、龟速乘总结一、快速幂求\(a^b\mod\p\)的结果。\(Code\)//快速幂(不加mod)intqmi(inta,intb){intres=1;while(b){if(b&1)res=res*a;b>>=1;a=a*a;}returnres;}//快速幂intqmi(in......
  • 从事网络安全工作需要本科学历吗?
    众所周知,学历是个敲门砖,无论是找工作还是晋升都是不可或缺的存在,而网络安全作为当下热门的行业,虽然很多人都有转行学习的想法,但都比较担心学历的问题,那么从事网络安全工作需要本科学历吗?来看看具体内容介绍。其实学习网络安全相关知识,本科学历并不是必需,高中、大专等学历......
  • 每个.NET开发都应掌握的C#多线程知识点
    上篇文章讲述了C#特性(Attribute)知识点,本文将介绍多线程的知识点。多线程编程是现代软件开发中的重要组成部分,它能够充分利用多核处理器,提高应用程序的性能和响应性。C#作为.NET开发的主要语言,提供了强大的多线程支持。本文将介绍C#多线程知识点,帮助.NET开发者更好地应对多线程编程......
  • HyperLedger Fabric 1.2 区块链工作过程(2.3)
    区块链的工作过程分交易产生、交易广播、节点计算、获取记账权、记账权广播、接收区块、验证区块和完成记账七个过程。1)交易产生:用户向区块链发了一笔交易信息,将产生交易;2)交易广播:当一笔新交易产生时,区块链网络会广播出去,网络中的其它节点都会收到该交易信息;3)节点计算:收到......
  • stm32f103rbt6芯片部分知识点总结。
    使用的工具开发板:stm32f103rbt6内核:arm-cotex-m3系类v7架构r:64脚,b:128字节,6:工作温度范围muc就是stm32单片机芯片,soc是带操作系统的开发板,例如a53。 学习的主要内容掌握接口编程技术即裸板驱动开发通过直接写寄存器(寄存器地址=基地址加偏移地址)或调用函数实现cpu对......
  • 每日总结
    今天我对大型数据库练习题进行了复习, 相关sql代码如下:createdatabasedb001;createtablesale_sample(day_idstringcomment'日期编号',sale_nbrstringcomment'卖出方代码',buy_nbrstringcomment'买入方代码',cntstringcomment'数量',......
  • 在工作站计算机配置等待设备安装任务完成的秒数为 300 秒
    一、打开本地组策略WIN+R二、步骤打开计算机配置\管理模板\系统\设备安装配置设备安装超时 三、操作启用......
  • Java语言基础知识全总结
    一.Java的优点1.      跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快2.      纯面向对象。Java所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特......
  • 11.13每日总结
    今天早上进行了软件设计模式的上机实验[实验任务一]:计算机开启在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load()),如......
  • 每日总结
    实验12:外观模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解外观模式的动机,掌握该模式的结构;2、能够利用外观模式解决实际问题。Client:packagetutorial12;publicclassClient{     publicstaticvoidmain(String[]args){        //T......