zoukankan      html  css  js  c++  java
  • mysql 深入问题了解

    一,mysql数据库主从同步复制原理

    MySQL的 Replication是一个异步复制的过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),它是从一个Mysql instance(instance英文为实例)(我们称之为Master)复制到另一个Mysql instance(我们称之slave)。在master与slave之间实现整个复制过程主要由三个线程来完成,其中两个线程(SQL线程和IO线程) 在slave端,另外一个线程(IO线程)在master端。

    要实现MySQL的 Replication,首先必须打开master端的binlog (mysql-bin.xxxxxx)日志功能,否则无法实现mysql的主从复制。因为mysql的整个主从复制过程实际上就是:slave端从 master端获取binlog日志,然后再在自己身上完全顺序的执行该日志中所记录的各种SQL操作。

    具体过程:

    1、master在执行sql之后,记录二进制log文件(bin-log)。

    2、slave连接master,并从master获取binlog。

    3、将binlog日志内容存于本地relay-log(mysql-relay- bin.xxxxxx)的最末端。

    4、并读取到的master端的binlog文件名和pos节点位置记录到master-info(该文件存在slave 端)文件中。

    5、然后从这个记住的位置起执行SQL语句,一旦遇到错误则停止同步。

    简单的说就是:  master通过binlogdump线程发送binlog发送到slave上,slave通过I/O线程读取后将数据复制relaylog中,再通过SQL线程读取并执行。

    配置可参考:https://blog.csdn.net/jay_youth/article/details/81570700

     二,mysql的索引(别称index,key,键)认识

    在关系数据库中,索引是对表中一列或多列的值进行排序的一种存储结构,它是表中一列或多列的值的集合,而且其中包含了对应表中记录的引用指针。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
    要注意的是,索引也是表的组成部分,建立太多的索引将会影响更新和插入的速度,因为它需要同样更新每个索引文件。对于一个经常需要更新和插入的表格,就没有必要为一个很少使用的where字句单独建立索引了,对于比较小的表,排序的开销不会很大,也没有必要建立索引。

    举个例子:首先,先假设有一张表,表有10W个记录,其中有一条记录我们已知a='1',如果想要拿到对应记录的话,需要的sql语句是 SELECT * FROM xxx WHERE a='1'.一般情况下,对于查询语句,在没有建立索引的时候,mysql会进行全表扫描,而且不扫描完10W个记录不会停止,如果我在nickname上建立索引,那么mysql相当于只扫描nickname这一列即可,而且因为这一列已排好序,找到对应结果或结果集可以直接返回。

    三,mysql的索引类型

    索引分单列索引和组合索引。单列索引(全文索引,主键索引,唯一索引,普通索引),即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。
    组合索引,即一个索引包含多个列。

    具体可参考:https://www.cnblogs.com/chenshishuo/p/5030029.html

    四,

    作者:陈耿聪 —— 夕狱

    出处:https://www.cnblogs.com/CGCong/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    自我介绍
    学习进度第二周
    [BJDCTF2020]Easy MD5
    2020/2/13 bluecmsv1.6sp1代码审计
    [CISCN2019 总决赛 Day1 Web4]Laravel1
    [ByteCTF 2019]EZCMS
    2020/2/12 PHP编程学习
    [XNUCA2019Qualifier]EasyPHP
    [RoarCTF 2019]Online Proxy
    [GXYCTF2019]BabySQli
  • 原文地址:https://www.cnblogs.com/CGCong/p/12668258.html
Copyright © 2011-2022 走看看