我先简单的介绍下事务:事务必须满足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工具创建,

MySQL的那点事!的更多相关文章

  1. php与mysql通讯那点事

    php与mysql通讯那点事 http://www.cnxct.com/libmysql-mysqlnd-which-is-best-and-what-about-mysqli-pdomysql-my ...

  2. MySQL主库切换那些事

    最近连续经历了机架掉电和交换机挂掉,着实切了不少主库,虽然过程心惊胆跳,但是也算是上过战场,经过了实战演习,相信TEAM中的小伙伴们对于切主库已经可以驾轻就熟了. MySQL的主库切换也属于DBA的一 ...

  3. mysql复制那点事 - Seconds_behind_Master参数调查笔记

    目录 mysql复制那点事 - Seconds_behind_Master参数调查笔记 0. 参考文献 1. 问题背景 2. 调查结论 3. 调查与分析过程 3.1 轮转binlog时的运行逻辑 3. ...

  4. mysql复制那点事(2)-binlog组提交源码分析和实现

    mysql复制那点事(2)-binlog组提交源码分析和实现 [TOC] 0. 参考文献 序号 文献 1 MySQL 5.7 MTS源码分析 2 MySQL 组提交 3 MySQL Redo/Binl ...

  5. Mysql性能优化那些事

    ​    ​对于全栈而言,数据库技能不可或缺,关系型数据库或者nosql,内存型数据库或者偏磁盘存储的数据库,对象存储的数据库或者图数据库--林林总总,但是第一必备技能还应该是MySQL.从LAMP的 ...

  6. PHP+MySQL 分页那点事

    分页技术随处可见,这可以算得上是最为基础的网站功能了.于是今天尝试着用PHP来实现一个分页的小例子. 准备工作 环境准备 Apache MySQL PHP 工作环境 数据库准备 建库 建表 预存数据 ...

  7. 十五、Mysql字符集的那些事

    1. 设置默认字符集 #vim /etc/mysql/my.cnf .(5.5以后系统)如下修改: [client] default-character-set=utf8 [mysqld] defau ...

  8. linux下jdk_tomcat+mysql配置那点事

    (1)上传环境压缩包 apache-tomcat-7.0.47.tar.gz, jdk-7u71-linux-x64.gz, mysql-5.6.14.tar.gz通过xftp工具上传到/usr/lo ...

  9. mysql的那些事之架构

    MySQL架构的那些事 此篇博客为原创,欢迎转载,转载时请注明出处,谢谢 最近深入学习了一下mysql的内容,想把自己的理解分享出来. mysql架构 逻辑架构 Connectors:连接器 Mana ...

随机推荐

  1. PHP编码规范PSR-1

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  2. C#之设计模式

    单例的一种实现方式 1.构造函数私有化 2.声明一个静态字段,作为全局唯一的单例对象 3.声明一个静态函数,返回全局唯一的对象 using System; using System.Collectio ...

  3. 怎么把本地项目和远程git仓库相连通

    1. 打开在你的项目文件夹,输入下面的命令 git init 输完上面的命令,文件夹中会出现一个.git文件夹,如下图所示,其他的的文件也会出现蓝色小问号的标志 2. 添加所有文件 git add . ...

  4. redis 常用命令

    临时启动:redis-server.exe redis.conf/redis-server redis.windows.conf安装Windows服务:redis-server.exe --servi ...

  5. CSS样式收集

    1.改变浏览器滚动条样式(适合webkit内核,摘自www.webhek.com/scrollbar) ::-webkit-scrollbar{width:2px;} ::-webkit-scroll ...

  6. Bubble Cup 8 finals F. Bulbo (575F)

    题意: 给定初始位置,查询n次区间,每次查询前可以花费移动距离的代价来移动, 查询时需要花费当前位置到区间内最近的点的距离,求最小代价. 1<=n<=5000,1<=所有位置< ...

  7. runtime-对成员变量和属性的操作

    成员变量 首先我们来看看成员变量在runtime中是什么样的 在runtime中成员变量是一个objc_ivar类型的结构体,结构体定义如下 struct objc_ivar { char *ivar ...

  8. Redis实战阅读笔记——第一章

    Redis 实战 中文版 的20-21页看的人郁闷死了,最后看英文版才明白意思,哎,我理解能力差成这样了 其中,图 1-12 有错误,草,这个是英文版的错--应该是group:programming

  9. Code Snippets 代码片段

    Code Snippets 代码片段       1.Title : 代码片段的标题 2.Summary : 代码片段的描述文字 3.Platform : 可以使用代码片段的平台,有IOS/OS X/ ...

  10. 使用SqlDataReader和SqlDataAdapter的注意

    1.当SqlDataReader没有关闭之前,数据库连接会一直保持open状态,所以在使用SqlDataReader时,使用完毕应该马上调用SqlDataReader.Close()关闭它. 2.一个 ...