我先简单的介绍下事务:事务必须满足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. 修改github.com域名解析

    http://ping.chinaz.com/  首先在这个网站查询 github.com 然后选择ping速度最好的IP地址 将其填充到hosts文件中.win7路径:C:\Windows\Syst ...

  2. 网站中使用echart

    在网站开发中,可能会使用折线图,圆饼图,等等 来丰富网页对数据的展示,可以使用echart http://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E ...

  3. 关于JSF中immediate属性的总结(三)

    Okay, when should I use the immediate attribute? If it isn't entirely clear yet, here's a summary, c ...

  4. String StringBuffer StringBuilder

    package com.test; import java.util.Date; /*** * * // 输出的结果是:// 来一个测试// 来一个测试如果只输出这句就证明了String是不可变的// ...

  5. controller_name classify constantize model_name

    控制器 class CourseSurveysController < ResourcesBaseController end controller_name # "course_su ...

  6. 国内github访问慢的解决方法

    本文是windows处理方法,macos方法也差不多. 一般Github的访问有两部分:主站的访问和二级域名的资源加载(比如样式文件等) 一般Github加载缓慢,主要是 assets-cdn.git ...

  7. 静态界面传值javascript

    一:JavaScript静态页面值传递之URL篇能过URL进行传值.把要传递的信息接在URL上.Post.htm 复制代码代码如下: <input type="text" n ...

  8. (转)Sql日期时间格式转换

    sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 ...

  9. HBase 基本shell命令

  10. centos 7 配置网络

    文档: https://wiki.centos.org/FAQ/CentOS7