• mysql概念


    # ### part1 索引树高度

    # 1.表的数据行
    数据量越大,树的高度就会变高,理论上3层索引树高度可以支持百万级别数据量
    解决:可以使用分表,分库,数据库缓存,解决数据过大问题
    # 2.索引键值过长
    该索引字段存储数据太大,每个叶子节点默认可以存储16k,超过范围增加叶子节点,
    解决:前缀索引 (截取前10个长度)
    # 3.数据类型
    char(定长,多余数据用空格补位) varchar(变长) 从数据类型角度,char比varchar快
    从数据结构这个角度上看,varchar更加合理
    选择合理的类型;

    # ### part2 事务处理的四项特征 ACID
    A.原子性 :
    同一个十五中可能有多条sql语句,要么全部成功,要么直接回滚,作为一个完整的整体,不能再分割的最小个体
    C.一致性 :
    a,i,d 都是为了保证数据的一致性才提出来的,比如约束,键,在插入数据时,必须按照约定条件才能插入,保证插入数据规则上的一致性
    上升到事务中,防止意外情况导致数据不统一,比如脏读,幻读,不可重复读,最终要决定数据的同步一致
    在上升到主从数据库,主数据库执行这条插入数据,从数据库一定执行,保证数据一致性
    I.隔离性 :
    lock+isolation锁,来处理事务的隔离界别,
    一个事务和另外一个事务在工作过程中彼此独立,
    如果同时更改同一个数据,因为锁机制的存在,先执行的先改,其他事务需要等待
    D.持久性 :
    把数据写到磁盘上,保证数据的持久化存储

    # 隔离性: 隔离级别
    begin;
    执行SQL
    commit;
    rollback;

    脏读: 没提交的数据被读出来了
    不可重读: 前后多次读取,数据内容不一样(同一个会话中,在不进行修改的时候,永远只看到同样的一套数据)
    幻读 : 前后多次读取,数据总量不一样

    RU : 读未提交 : 脏读,不可重读,幻读
    RC : 读已提交 : 防止脏读,会出现 不可重读和幻读
    RR : 可重复读 : 防止脏读,不可重复读,可能会出幻读 (默认级别)
    SR : 可串行化 : 什么都能防止(多个会话窗口同步,不能并发,性能差)

  • 相关阅读:
    JAVA8十大新特性详解
    博客主题
    nideshop小程序商城部署
    Eclipse创建Maven多模块工程Module开发(图文教程)
    将博客搬至CSDN
    腾讯开源软件镜像站上线
    python-应用OpenCV和Python进行SIFT算法的实现
    初学node.js-nodejs中实现删除用户路由
    本博客正在实验姿态捕捉,可以尝试允许摄像头运行
    博客园如何实现看板娘Live2d?来吧少年,开启新世界的大门!——live2d 博客园 个性化定制
  • 原文地址:https://www.cnblogs.com/banbosuiyue/p/11968021.html
Copyright © 2020-2023  润新知