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

佛山网站建设哪儿有centos amh wordpress

佛山网站建设哪儿有,centos amh wordpress,百度站长网站文件验证,网站界面设计策划书怎么做MySQL架构与历史 文章目录 MySQL架构与历史一、MySQL逻辑架构二、并发控制三、事务四、多版本并发控制(MVCC) 一、MySQL逻辑架构 第一层#xff1a;连接处理、授权认证、安全等等 第二层#xff1a;查询解析、分析、优化、缓存以及所有的内置函数。包含跨存储引擎的功能…MySQL架构与历史 文章目录 MySQL架构与历史一、MySQL逻辑架构二、并发控制三、事务四、多版本并发控制(MVCC) 一、MySQL逻辑架构 第一层连接处理、授权认证、安全等等 第二层查询解析、分析、优化、缓存以及所有的内置函数。包含跨存储引擎的功能存储过程、触发器、视图等 第三层存储引擎。负责MySQL中数据的存储和提取 二、并发控制 无论何时只要有多个查询需要在同一时刻修改数据都会产生并发控制的问题。 讨论mysql两个层面的并发控制存储引擎层与服务器层 读写锁 在处理并发写或并发读写时可以使用两种类型的锁组成的锁系统来解决问题。这两种锁就是共享锁读锁和排他锁写锁。读锁是共享的互相不阻塞写锁是排他的只有一个线程能进行写操作其它读锁和写锁都是阻塞的。 并且写锁拥有更高的优先级。在一个锁队列中写锁可以插到读锁的前面。 锁粒度 一种理想的锁方式是尽量只锁定需要修改的资源而不是所有资源。锁定的数据量越小并发程度越高。 但是也是需要时空开销的判断是否有锁、加锁、释放锁的操作都需要额外的开销如果锁粒度太小虽然并发程度高但系统花大量资源去管理锁而不是存取数据也是得不偿失。 锁策略 就是在锁的开销和数据安全性之间寻求平衡。大多数数据库都是行级锁而mysql提供了更多锁的可能性。每种存储引擎都可以实现自己的锁策略和锁粒度。将锁粒度固定在某一级别可以为特定的应用场景提供更好的性能但同时也会失去对一些应用场景的支持。但好在mysql支持多个存储引擎。 表锁 表锁是mysql中最基本、开销最小的锁策略。尽管存储引擎可以设计管理自己的锁但mysql服务器还是利用表锁来实现不同的目的。例如会为alter table 之类的语句使用表锁而忽略存储引擎的锁机制 行级锁 行级锁是mysql中并发量最大、开销最大的锁策略。行级锁只在存储引擎层实现服务器没有实现。并且服务器层完全不了解存储引擎层的锁实现。 三、事务 事务是一组原子性的操作是一个独立执行单元。事务内的语句要么全部执行成功要么全部执行失败。 事务的四个标准特征(ACID) 原子性(atomicity)一个事务必须被视为不可分割的最小工作单元整个事务的所有操作要么全部提交成功要么全部失败回滚。 一致性(consistnecy)数据库总是保持一致性的状态 隔离性(isolation)通常来说一个事务在没有最终提交以前对其它事务是不可见的 持久性(durability)一旦事务提交则其所做的修改就会永久保存到数据库中。 隔离级别 未提交读(READ UNCOMMITTED):事务中的修改即使没有提交对其它事务也都是可见的。脏读问题事务1改事务2读事务1回滚。 提交读(READ COMMITTED):大多数数据库的默认隔离级别是提交读(MySQL不是)。事务从开始直到提交之前所做的修改对其它事务都是不可见的。也叫不可重复读。不可重复读问题事务1读事务2改事务1读 可重复读(REPEATABLE READ):保证在同一个事务中多次读取同样记录的结果是一致的。可重复读是MySQL的默认事务隔离级别。幻读问题事务1范围操作事务2插入数据事务1读产生幻行 可串行化(SERIALIZABLE):非常需要数据的一致性和接受没有并发的情况下才考虑该级别。 死锁 当两个或多个事务占用着自己的资源而都在等待对方占用的资源时会形成死锁。 解决死锁问题的方法 一种是在事务开始前检测死锁的循环依赖若有可能导致死锁则报错。 一种是发生死锁时设置最长等待时间大于这个时间则放弃资源不推荐性能变差 一种是发生死锁时将拥有最少行级写锁的事务回滚。 四、多版本并发控制(MVCC) 以InnoDB的MVCC为例InnoDB以每行记录后面保存两个隐藏的列来实现MVCC。这两个列一列保存这一行的创建时间一列保存这一行的过期时间。但存储的并不是真正的时间而是系统版本号。每开始一个事务系统版本号就会自增。事务通过自身的系统版本号与这两个隐藏的列对比来操作数据。 在可重复读的隔离级别下InnoDB的MVCC的具体操作如下 select InnoDB查找创建系统版本号小于等于事务系统版本号的行即在事务开始前就存在的行或者由事务自身插入或修改的行。同时该行的过期系统版本号要么未定义要么大于事务系统版本号。 insert 新插入的每一行创建时间都是当前事务的系统版本号。 delete 删除的每一行的过期时间都是当前事务的系统版本号。 update 插入一条新数据创建时间是当前事务的系统版本号将原来行的过期时间设置为 当前事务的系统版本号。 MVCC只在提交读和可重复读两个隔离级别下工作因为未提交读总是能读取到最新的行而不是符合当前事务版本的行而串行化会对所有行加锁。 MyISAM和InnoDB的区别 事务MyISAM不支持事务InnoDB支持事务。 锁粒度MyISAM只支持表锁InnoDB支持行锁。 存储MyISAM存三个文件(.frm .MYD .MYI)支持动态 静态和压缩三种压缩格式。InnoDB存一个文件(.frm)。 外键MyISAM不支持外键InnoDB支持外键。 索引MyISAM是索引行指针InnoDB是聚簇非聚簇这个点决定了其主键的必要性。 安全MyISAM不支持崩溃安全恢复InnoDB支持redo_log。 行数统计MyISAM中维护一个计数器记录总行数select(*)时很快而InnoDB需要全表扫描所以很慢。
http://www.yutouwan.com/news/308696/

相关文章:

  • 网上书城网站开发的目的与意义中国建设的网站
  • 中国空间站扩展网站设计用户体验
  • 正阳县网站建设个体户网站备案
  • 手机建设网站的目的阿里云虚拟主机怎么建设网站
  • 从哪些方面评价一个企业的网站建设互联网挣钱项目平台
  • 学校网站如何建设网站建设的前后台代码
  • 东莞住房和城乡建设厅网站建设什么样的网站月入一万
  • 哪个网站可以做效果图wordpress strip_tags
  • 做电影网站侵权吗一流的江苏网站建设
  • soho外贸网站用jsp做的网站源代码
  • 网站开发学些什么北京王府井简介
  • 天津网站建设普斯泰python在线编程题库
  • 营销型网站建设的优缺点wordpress安装好后
  • 如何用python做网站脚本语言wordpress修改404页面
  • 莘县住房建设局网站网站维护怎么样
  • 凯里市经济开发区建设局网站seo排名软件
  • 自己怎么做淘宝客网站吗wordpress文章标题过长
  • 郑州市网站建设哪家公司好帮人做钓鱼网站以及维护
  • 网站开发的难点与重点asp化妆品网站源码
  • 怎么样增加网站权重wordpress快速审批
  • 执法局网站建设目的前端自己写代码建网站要花多少钱
  • 百度微信官网网站模板公司网站建设素材
  • 临沂企业建站系统数字化文化馆网站建设
  • php网站 上传西部数码备案域名购买
  • 重庆网站优化排名软件方案北京网页设计公司兴田德润可信赖
  • linux 如何做网站深圳专业医疗网站建设
  • 凡科免费做网站宣城网站 建设
  • 企业网站备案资料填写单彩票网站开发 极云
  • 如何制作一个简易网站wordpress 淘客帝国
  • 揭阳网站建设维护百度地图在线查询