mysql和redis基础知识总结

一、MYSQL

1.1、MYSQL架构和SQL执行流程
sql执行流程:
    通信协议(TCP/IP SOCKET)-》查询缓存(mysql8 去掉此功能)-》语法解析和预处理-》查询优化和查询执行计划-》存储引擎-》执行引擎
mysql架构分层:
    连接层-》服务层-》存储引擎
InnDB内存结构和磁盘结构:
    内存结构:
        Buffer Pool、Change Buffer写缓冲、Adaptive Hash Index、Log Buffer(Redo log)
    磁盘结构:
        系统表空间、独占表空间、通用表空间、临时表空间、Redo log、undo log

1.2、MYSQL索引深入解析
    索引存储模型推演:
        二分查找-》二叉查找树-》平衡二叉树(左旋、右旋)-》多路平衡查找树(B Tree)(分裂、合并) -》加强版多路平衡查找树(B+ Tree)
    InnoDB逻辑存储结构:
        表空间(Table Space)-》段(Segment)-》簇/区(Extent)-》页(Page)-》行(Row)
    索引使用原则:
        列的离散度大、联合索引最左匹配、索引覆盖、索引条件下推
1.3、MYSQL事务与锁详解:
    事务的四大特性:
        原子性(依靠undo log实现)、一致性、隔离性、持久性(redo log + double write实现)
    数据库隔离的四大级别:
        未提交读、已提交读、可重复读、串行化

    不可重复读和幻读,的区别在那里呢?
          不可重复读是修改或者删除操作,幻读是插入操作。
      MYSQL innoDB 锁的基本类型:
          共享锁(读锁)、排他锁(写锁)、意向锁(表锁)
      行锁的原理:
          行锁实际锁的是主键索引,如果没有设置主键索引或唯一索引则锁表
      锁的算法:
          记录锁、间隙锁、临键锁


      查看锁表信息:
          -- 查看锁信息
          show status like 'innodb_row_lock_%';

          -- 当前运行的所有事务 ,还有具体的语句
        select * from information_schema.INNODB_TRX; 

        -- 当前出现的锁
        select * from information_schema.INNODB_LOCKS; 

        -- 锁等待的对应关系
        select * from information_schema.INNODB_LOCK_WAITS; 

二、REDIS

2.1、Redis基本数据类型:
    String字符串(INT->embstr->raw)、Hash哈希(ziplist->hashtable)、List列表(quicklist)、Set集合(intset>hashtable)、ZSet有序集合(ziplist->skiplist)
2.2、Redis原理:
    1、Redis底层用lua脚本执行
    2、Redis持久机制:RDB(恢复速度快、消耗CPU小)和AOF(丢失数据少),但是一般情况下建议不要单独使用某一种持久化机制,而 是应该两种一起用
    3、Redis为什么这么快:内存存储、单线程、异步非阻塞
2.3、Redis分布式:
    1、为什么需要redis集群:性能、扩展、可用性
    2、Redis主从复制
    3、哨兵机制
    4、Redis客户端:Jedis、Luttece、Redisson

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西贝爷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值