misszm

以前以为错过也很美, 想在很后悔

mysql 引擎和事务

mysql 默认引擎lnnoDB, 还有MyISAM, 可以使用命令SHOW ENGINES; 查看所有可用引擎

lnnoDB 支持事务, 支持外键

MylSAM 不支持事务, 不支持外键, 插入和查询的效率更高些  # 跟非关系型数据库有啥区别??

1. 修改默认引擎:

  1. 找到配置文件my.cnf:  mysql --help |grep my.cnf, 或者改my.ini文件, 方法一样

   显示的配置文件从左往右都会加载, 

  2. 如果显示的配置文件一个都没有就新建一个 /etc/my.cnf

    配置文件/etc/my.cnf中的 [mysqld] 下面加入default-storage-engine=MylSAM

  3. 重启mysql 

  # 有的引擎安装时mysql 都没有默认编译, 要使用就需要重新编译mysql (只有换数据库的需求, 没有换引擎的需求)

2. 修改表的引擎:

  方式一: ALTER TABLE 表名 ENGINE=INNODB;

  方式二: CREAT TABLE 表名 () ENGINE=INNODB;

3. 事务  # 普通的增删改查都是 隐性事务

  4个特性: 

    原子性: 事务是一个整体, commit 或者 rollback

    一致性: 两种状态, 要么是开始事务时的状态, 要么是事务结束后的状态

    持久性: 事务提交之后, 数据正常保存

    隔离性: 每个人读写的隔离的, 四种隔离级别

  4种隔离级别:

    读未提交: 查到了事务未提交的数据 (唯一不用加锁)

    不可重复读: 提交之后才会被查到  (Oracle默认事务隔离等级)

    可重复读: 一个事务查询操作读到的数据一样 (MySQL默认事务隔离等级)

    串行化: 一个事务一个事务执行, 单进程

  事务sql 语句:

    set session transaction isolation level read uncommitted;  # 设置事务隔离级别

    START TRANSACTION;  # 自动提交功能自动关闭即: SET autocommit=0; 开启为1

    update;

    update;

    COMMIT;  # ROOLBACK;

    

posted on 2020-07-24 14:06  宋喜阳  阅读(251)  评论(0编辑  收藏  举报

导航