MySQL基本知识

MySQL的逻辑结构

    

并发控制

    1)读锁/写锁   读锁是共享的,写锁是独占的
    2)粒度锁
                   锁策略一般是在锁开销和数据安全之间寻找平衡。
           表锁:开销最小
                   行级锁:支持高并发处理,开销大

事务

    一组原子性的SQL查询语句,或者可以看做一个工作单元
    START TRANSACTION 开始一个事务
    COMMIT 提交事务
    ROLLBACK 回滚整个事务
    ACID:
        1)原子性:一个事务要么全部执行,要么全部不执行
        2)一致性:数据库总是从一致性状态转换到另一种一致性状态
        3)隔离性:事务的结果只有在完成之后才对其他事务可见
        4)持久性:一旦一个事务提交,事务所做的数据改变将是永久的
        隔离级
        READ UNCOMMITTED(读取未提交内容)所有事务可以看到未提交事务的执行结果,会出现脏读,幻读
        READ COMMITTED(读取提交内容)不可重复读,运行同一语句两次看到结果不同,会出现幻读
        REPEATABLE READ(可重读)MySQL默认事务隔离级,会出现幻读
        SERIALIZABLE(可串行化)强制事务排序,解决幻读。在每个读的数据行上加锁,导致大量超时现象和锁竞争
    死锁
        出现两个或多个事务在同一资源上相互占用,并请求加锁时,导致的恶性循环现象。(简单解决方法,部分或者全部的方式回滚某个事务)
    事务日志
        存储引擎先更新数据在内存中拷贝,存储引擎数据改变记录写入事务日志(顺序IO),位于磁盘上。再把表数据更新到磁盘上
    MySQL默认操作AUTOCOMMIT(自动提交),将每个查询视为一个单独事务自动执行
    InnoDB通过为每个数据行增加两个隐含值来实现MVCC。隐含值记录了行的创建时间和过期时间。

存储引擎

    MyISAM
        每个表存储为:数据文件(.MYD)和索引文件(.MYI)
        表锁。支持并发插入。支持自动检查和自动修复。手工修复(CHECK TABLE .../REPAIR TABLE ...)。支持全文索引。延迟更新索引
    InnoDB
        所有数据存储在表空间中,采用聚簇索引
    选择合适引擎考虑因素:事务,并发,备份,崩溃后恢复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值