zoukankan      html  css  js  c++  java
  • MySQL的那点事!

    我先简单的介绍下事务:事务必须满足4个条件:1、原子性,2、一致性,3、隔离性,4、持久性。

    MySQL的事务处理主要有两种方法

    1、用 begin rollback commit 来实现
      begin:开始的事务
      rollback:事务回滚
      commit:事务确认,
    2、直接用set来改变MySQL的自动提交模式
    MySQL默认的是自动提交的,也就是你提交一个QUERY, 他就直接执行!我们可以通过set autocommit=0 禁止自动提交, set autocommit=1开启自动提交;
    来实现事务,
    通过第二种方法实现的代码:


    <?php

    $header = mysql_connect("localhost","root","");//数据库连接
    mysql_select_db("talk");//选择数据库
    mysql_query("SET AUTOCOMMIT = 0");//设置为不自动提交;数据库默认的是立即执行
    mysql_query("BEGIN");//开始事务定义;
    if(!mysqli_query("insert into trans(id) value ('3')"));
    {
    mysql_query("BOOLBACK");//失败时执行回滚;

    }
    if(!mysql_query("insert into trans(id) value(''4)"))
    {
    mysqli_query("BOOLBACK");//失败的时候执行回滚;
    }
    mysql_query("COMMIT");//执行事务;
    mysql_query("$header");

    ?>

    MyISAM和InnoDB区别:
    1. MyISAM引擎的简单SELECT、INSERT和UPDATE快速操作

    2. MyISAM类型的数据文件可以在不同的操作系统中COPY,部署的时候方便点。

    3. MyISAM是非事务安全型的,而InnoDB是事务安全型的。

    4. MyISAM锁的粒度是表级,而InnoDB支持行级锁定。

    5. MyISAM支持全文类型索引,而InnoDB不支持全文索引。

    6. MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。

    7. MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦。

    8. InnoDB表比MyISAM表更安全,可以在保证数据不会丢失的情况下,切换非事务表到事务表(alter table tablename type=innodb)。

    应用场景

    MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。
    InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

    数据库表的类型

    创建表的时候定义的表性质:静态表、动态表、压缩表。默认的是静态表
    若存在varchar text字段则表的类型为动态

    静态表的::::字段有固定的的长度。例如:char(20)

    动态表:::::字段的长度是变化的;如varchar(这种表比较节省空间、复杂度高每条记录都有一个header,作用就是表明该记录有多长,所有的字符串列都是动态的)

    压缩表:::::只读,使用很少的空间,用myisampack工具创建,

  • 相关阅读:
    高斯模糊原理,算法
    SIFT算法详解
    第五章:状态图
    ANTLR4权威指南
    第八章:包图,组件图,部署图
    棋盘n皇后问题-递归
    普通页面引入React(使用和不使用JSX)
    浏览器环境
    DevTool-Network
    优化浏览器渲染
  • 原文地址:https://www.cnblogs.com/yaqiangyinsi/p/6099087.html
Copyright © 2011-2022 走看看