当前位置: 首页 > news >正文

苏州h5网站建设云南建设网官方网站

苏州h5网站建设,云南建设网官方网站,网络科技公司项目加盟,下载可以做动漫的我的世界视频网站MySQL事务 MySQL 事务主要用于处理操作量大#xff0c;复杂度高的数据。比如说#xff0c;在人员管理系统中#xff0c; 要删除一个人员#xff0c;即需要删除人员的基本资料#xff0c;又需要删除和该人员相关的信息#xff0c;如信箱#xff0c; 文章等等。这样#…MySQL事务 MySQL 事务主要用于处理操作量大复杂度高的数据。比如说在人员管理系统中 要删除一个人员即需要删除人员的基本资料又需要删除和该人员相关的信息如信箱 文章等等。这样这些数据库操作语句就构成一个事务 事务是一种机制、一个操作序列包含了一组数据库操作命令并且把所有的命令作为一个整体一起向系统提交或撤销操作请求即这一组数据库命令要么都执行要么都不执行 事务是一个不可分割的工作逻辑单元在数据库系统上执行并发操作时事务是最小的控制单元 事务适用于多用户同时操作的数据库系统的场景如银行、保险公司及证券交易系统等等 事务是通过事务的整体性以保证数据的一致性 说白了所谓事务它是一个操作序列这些操作要么都执行要么都不执行它是一个不可分割的工作单位 事务ACID特点  ACID是指在可靠数据库管理系统DBMS中事务(transaction)应该具有的四个特性原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability 这是可靠数据库所应具备的几个特性如下 原子性 指事务是一个不可再分割的工作单位事务中的操作要么都发生要么都不发生。 事务是一个完整的操作事务的各元素是不可分的。 事务中的所有元素必须作为一个整体提交或回滚。 如果事务中的任何元素失败则整个事务将失败。 一致性 指在事务开始之前和事务结束以后数据库的完整性约束没有被破坏。 当事务完成时数据必须处于一致状态。 在事务开始前数据库中存储的数据处于一致状态。 在正在进行的事务中数据可能处于不一致的状态。 当事务成功完成时数据必须再次回到已知的一致状态。 隔离性 指在并发环境中当不同的事务同时操纵相同的数据时每个事务都有各自的完整数据空间。 对数据进行修改的所有并发事务是彼此隔离的表明事务必须是独立的它不应以任何方式依赖于或影响其他事务。 修改数据的事务可在另一个使用相同数据的事务开始之前访问这些数据或者在另一个使用相同数据的事务结束之后访问这些数据。 持久性 在事务完成以后该事务所对数据库所作的更改便持久的保存在数据库之中并不会被回滚。 指不管系统是否发生故障事务处理的结果都是永久的。 一旦事务被提交事务的效果会被永久地保留在数据库中。 Mysql及事务隔离级别 read uncommitted 读取尚未提交的数据 不解决脏读 允许脏读其他事务只要修改了数未提交读据即使未提交本事务也能看到修改后的数据值。也就是可能读取到其他会话中未提交事务修改的数居。 read committed 读取已经提交的数据 可以解决脏读 只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别〈不重复读)。 repeatable read可重复度重读读取可以解决脏读 和 不可重复读 —mysql默认的 可重复读。无论其他事务是否修改并提交了数据在这个事务中看到的数据值始终不受其他事务影响 serializable 串行化可以解决 脏读 不可重复读 和 虚读—相当于锁表 完全串行化的读每次读都需要获得表级共享锁读写相互都会阻塞。 mysql默认的事务处理级别是 repeatable read 而Oracle和SQL Server是 read committed 事务隔离级别 作用 全局级对所有的会话有效会话级只对当前的会话有效 查询全局事务隔离级别 show global variables like %isolation% SELECT global.tx_isolation 查询会话事务隔离级别 show session variables like %isolation% SELECT session.tx_isolation SELECT tx_isolation 设置全局事务隔离级别 set global transaction isolation level read committed 设置会话事务隔离级别 set session transaction isolation level read committed 事务控制语句 BEGIN 或 START TRANSACTION显式地开启一个事务。COMMIT 或 COMMIT WORK提交事务并使已对数据库进行的所有修改变为永久性的。ROLLBACK 或 ROLLBACK WORK回滚会结束用户的事务并撤销正在进行的所有未提交的修改。SAVEPOINT S1使用 SAVEPOINT 允许在事务中创建一个回滚点一个事务中可以有多个 SAVEPOINT“S1”代表回滚点名称。ROLLBACK TO [SAVEPOINT] S1把事务回滚到标记点。 事物实验 实验准备 创建school库、info表格并插入数据 测试提交事物 测试回滚事务 测试多点回滚 使用 set 设置控制事务 SET AUTOCOMMIT0;                                       #禁止自动提交 SET AUTOCOMMIT1;                                       #开启自动提交Mysql默认为1 SHOW VARIABLES LIKE AUTOCOMMIT;        #查看Mysql中的AUTOCOMMIT值 MySQL 存储引擎 MySQL中的数据用各种不同的技术存储在文件中每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力这些不同的技术以及配套的功能在MySQL中称为存储引擎 存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式 MySQL 常用存储引擎 MyISAM 不支持事务、外键约束只支持表级锁定适合单独的查询或写入读写并发能力较差支持全文索引占用资源较小适合硬件资源相对比较差的服务器使用数据和索引是分开存储的使用场景适用于不需要事务处理单独的查询或插入数据的业务场景 MyISAM在磁盘上存储成三个文件文件名和表名都相同其扩展名分别为 文件存储表结构的定义 .frm 数据文件的扩展名为 .MYD (MYData) 索引文件的扩展名是 .MYI (MYIndex) InnoDB 支持事务、外键约束支持行级锁定在全表扫描时仍然表级锁定读写并发能力较好在5.5版本才支持全文索引缓存能力较好可以减少磁盘IO的压力数据和索引是存储在一个文件中。使用场景适用于一致性要求较高数据频繁更新高并发读写的业务场景。 MyISAM 表支持 3 种不同的存储格式    * 静态(固定长度)表 静态表是默认的存储格式。静态表中的字段都是非可变字段这样每个记录都是固定长度的这种存储方式的优点是存储非常迅速容易缓存出现故障容易恢复缺点是占用的空间通常比动态表多。 固定长度10 存储非常迅速容器缓存故障之后容易恢复 id5  char(10) 000000001 动态表 动态表包含可变字段varchar记录不是固定长度的这样存储的优点是占用空间较少但是频繁的更新、删除记录会产生碎片需要定期执行 OPTIMIZE TABLE 语句或 myisamchk -r 命令来改善性能并且出现故障的时候恢复相对比较困难。 压缩表  压缩表由 myisamchk 工具创建占据非常小的空间因为每条记录都是被单独压缩的所以只有非常小的访问开支。   MyISAM适用的生产场景 公司业务不需要事务的支持  单方面读取或写入数据比较多的业务 MyISAM存储引擎数据读写都比较频繁场景不适合 使用读写并发访问相对较低的业务 数据修改相对较少的业务 对数据业务一致性要求不是非常高的业务 服务器硬件资源相对比较差 MyIsam适合于单方向的任务场景、同时并发量不高、对于事务要求不高的场景 死锁  * 锁定类型不同的存储引擎支持不同级别的锁定 表锁定MyISAM 支持 开销小加锁快不会出现死锁锁定粒度大发生锁冲突的概率最高并发度最低 行锁定InnoDB 支持 开销大加锁慢会出现死锁锁定粒度最小发生锁冲突的概率最低并发度也最高 存储引擎实验 查看系统支持的存储引擎 查看表使用的存储引擎 方法一 show table status from 库名 where name表名\G 方法二 use 库名; show create table 表名; 修改存储引擎 方法一 通过 alter table 修改 use 库名 alter table 表名 engineMyISAM 方法二 通过修改 /etc/my.cnf 配置文件指定默认存储引擎并重启服务 vim /etc/my.cnf ...... [mysqld] ...... default-storage-engineINNODB systemctl restart mysql.service 注意此方法只对修改了配置文件并重启mysql服务后新创建的表才会有效已经存在的表不会有变更 一般不常用 MyISAM和InnoDB的特点  * MyISAM 默认表类型它是基于传统的ISAM类型ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写它是存储记录和文件的标准方法。不是事务安全的而且不支持外键如果执行大量的selectinsert MyISAM比较适合。 InnoDB 支持事务安全的引擎支持外键、行锁、事务是他的最大特点。如果有大量的update和insert建议使用InnoDB特别是针对多个并发和QPS较高的情况。注 在MySQL 5.5之前的版本中默认的搜索引擎是MyISAM从MySQL 5.5之后的版本中默认的搜索引擎变更为InnoDB。 MyISAM和InnoDB的区别    * InnoDB支持事务MyISAM不支持。对于InnoDB每一条SQL语言都默认封装成事务自动提交这样会影响速度所以最好把多条SQL语言放在begin和commit之间组成一个事务 InnoDB支持外键而MyISAM不支持。 InnoDB是聚集索引使用BTree作为索引结构数据文件是和主键索引绑在一起的表数据文件本身就是按BTree组织的一个索引结构必须要有主键通过主键索引效率很高。MyISAM是非聚集索引也是使用BTree作为索引结构索引和数据文件是分离的索引保存的是数据文件的指针。主键索引和辅助索引是独立的。 InnoDB不保存表的具体行数执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数执行上述语句时只需要读出该变量即可速度很快。 Innodb不支持全文索引而MyISAM支持全文索引查询效率上MyISAM要高5.7以后的InnoDB支持全文索引了。 InnoDB支持表、行级锁(默认)而MyISAM支持表级锁。 InnoDB表必须有主键用户没有指定的话会自己找或生产一个主键而Myisam可以没有。 Innodb存储文件有frm、ibd而Myisam是frm、MYD、MYI。 Innodbfrm是表定义文件ibd是数据文件。
http://www.dnsts.com.cn/news/227263.html

相关文章:

  • 做婚庆网站5050众筹网站开发
  • wordpress如何采集电影西安关键词优化排名
  • 网站建设费用价格表做网站的服务器有哪些
  • 网站建设公司的方案模板北京地区做网站推广用哪家的好
  • 农业电商网站建设ppt磁业 东莞网站建设
  • 学做网站论坛插件tom企业邮箱官网
  • 网站建站网站91955wordpress导航栏图标
  • 洛阳东翔科技做的网站网站开发项目任务
  • 网络公司做网站江浦做网站
  • 如何提高网站的用户体验ue蛋糕网站模版
  • 广州网站建设公司招聘直装模板下载
  • vs做网站怎么添加子页美食网站的建设目的
  • 企业门户网站建设咨询个人简历网页制作代码
  • 织梦通用企业网站模板电脑网站页面怎么调大小
  • 东莞网站制作成都优秀网站建设
  • 宝塔网站建设网站标题替换
  • 长沙专业网站建设如何判断一个网站是php还是asp
  • 自己怎样做网站文章关键词内链网站源码建站
  • 六安做网站广州开发区第二小学
  • seo网站推广的作用建筑工程公司名字
  • 服饰视频网站建设整站优化 快速排名
  • 大连做网站外包百度快照搜索
  • 怎样在手机上面建设网站怎么推广我的网站吗
  • 自己做的网站添加域名大学网站建设的目标与思路
  • 网站开发私活分成什么网站可以做字体效果好
  • 网站制作算什么费用网站图片类型
  • 如何做网站优惠券推广网站建设是属现代服务吗
  • 网站作为医院形象建设vivo手机的网站开发
  • 人社局网站群建设工作方案国外买域名的网站
  • 商务网站设计报告天津市工程建设交易网站查汗国