Mysql-基础概念

日志

binlog 二进制日志

  • mysql级别的日志。
  • 基于redolog和undolog,但是一份二进制文件。
  • 记录了所有DDL和DML操作语句。类似Redis中的AOF日志。

redolog 前进日志

  • mysql写入过程中,会将数据变更先写入redo日志,然后再变更内存中数据,最后定时同步到硬盘中。redo日志会及时写入硬盘,写的过程中使用了连续写入和内存映射技术。
    • 默认满16MB写一次。
  • 如果在未及时放到硬盘中服务器宕机了,内存数据可能丢失。重新启动服务后,服务会检查redo日志,如果其中有记录,会依据记录变更数据。

undolog 回滚日志

  • 支持事务回滚的快照数据。

relaylog 中继日志

  • relaylog日志是在搭建主从集群时,从服务同步主服务数据时使用的。
  • 主服务将binlog日志传递给从服务后,从服务改名为relaylog日志,然后依旧relaylog日志中数据完成数据变更。
  • 是为了降低网络波动对数据同步的影响。

索引

1. mysql中B+索引是什么?

  • B树类似平衡二叉树,每个节点即保存key也保存数据。
  • B+树中只有叶子节点储存数据,其余非叶子节点只储存key。
  • mysql中是按照页来整合数据的,所以B+树中的各个节点就是各个页。
  • B+树中非叶子节点中储存key和在key对应范围下的下一级页的地址。
  • 这里每个节点是一个页,是为了从硬盘上读写数据快,降低了寻址时间。

2.B+索引是如何发挥作用的?

  • 这是因为加入索引后,可以将数据排序,在有顺序的集合中查询就可以添加不同的查询算法,加快查询效率。
  • 接下来有排序就一定排序规则,是升序还是降序,也就是数据是从大到小还是从小到大。不同的排序方式对查询效率有一定的影响。
SQL
  • 查询索引:
SHOW INDEXES FROM <table-name>; 

返回值中包括Collation列,这一列的值如果是A就是升序,如果是D就是降序。

  • 添加升序索引
CREATE INDEX <index-name> ON <table-name> (<columns-name> <index-type>);
keyvalue
index-name索引名称
table-name数据表名称
columns-name数据字段名称
index-type排序类型,ASC:升序 ;DESC:降序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田秋浩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值