zoukankan      html  css  js  c++  java
  • mysql-事务与存储引擎

    事务

    事务是恢复和并发控制的基本单位,指一件事从开始发生到结束的整个过程。

    事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

    • 原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
    • 一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
    • 隔离性(isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
    • 持久性(durability):持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

    事务应用:

        开启事务:start transaction;  
        执行sql命令;  
        中止事务:commit; rollback;  
        rollback只针对于对表记录的增删改,对创建库、创建表的操作无效
    

    存储引擎

    存储引擎是用来处理表的处理器。
    基本操作:

    查看表的引擎:show create table 表名;  
    创建表时指定存储引擎:create table 表名 () engine=myisam;  
    查看所有的数据引擎:show engines;  
    

    常用存储引擎特点:
    innodb:

    • 共享表空间:表名.frm (表结构) 表名.ibd(表结构&索引信息)
    • 支持行级锁

    myisam:

    • 独享表空间:表名.frm(表结构) 表名.myd(表记录) 表名.myi(索引信息)
    • 支持表级锁

    memory:

    • 表名.frm(表结构)
    • 存储于内存当中,服务重启之后表结构在,表记录都消失

    锁:为了解决客户端并发访问的冲突问题
    锁类型:读锁(可以进行查询,但不能改变表中内容),写锁(insert、update、delete,互斥锁,排他锁)
    锁粒度:表级锁、行级锁
    执行查询比较多的表使用myism引擎(使用innodb比较浪费资源);执行写操作比较多的表使用innodb引擎

  • 相关阅读:
    实例下载
    js跳转
    navicat怎么导出和导入数据表
    navicate怎么用sql语句插入一条语句
    svn提交时出现很多乱文件怎么解决
    随机显示星星(点击可删除)
    html节点属性操作
    利用节点更改table内容
    TreeView添加treeView1_NodeMouseClick----多么痛的领悟。。。
    IP addresses in C#
  • 原文地址:https://www.cnblogs.com/miloli/p/12454098.html
Copyright © 2011-2022 走看看