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

婚纱摄影行业网站谷歌搜索优化

婚纱摄影行业网站,谷歌搜索优化,查公司信息的网站,昆明睿腾科技网站建设思考:Mysql需要重点学习什么: 索引:索引存储结构、索引优化......事务:锁机制与隔离级别、日志、集群架构 本文是对Mysql架构进行初步学习 1、Mysql链接 Mysql监听器是长连接 BIO(阻塞同步IO调用), 不是NIO. 为什么…

思考:Mysql需要重点学习什么:

  1. 索引:索引存储结构、索引优化......
  2. 事务:锁机制与隔离级别、日志、
  3. 集群架构

本文是对Mysql架构进行初步学习

1、Mysql链接

Mysql监听器是长连接 BIO(阻塞同步IO调用), 不是NIO.

为什么这么设计, 因为mysql影响性能的关键是磁盘IO操作而非并发

2、一个mysql查询语句执行过程

Mysql服务器

  1. Server层:涵盖Mysql大多数核心业务,以及所有内置函数。
  2. 存储引擎层:负责数据的检索存储,其架构模式是插件式的,支持InnoDB、MyISAM等多种存储引擎。从Mysql5.5.5InnoDB成为默认存储引擎,也可以在创建表的时候制定存储引擎。

Server

  1. 客户端:执行sql语句请求,比如navicat工具
  2. 查询缓存:用处不大,Mysql8.0就去掉了。 变更操作会清空缓存,同时还需要保障缓存和DB的一致性,变更操作可能比较频繁,数据一致性保障对mysql服务性能也有影响,所以用处不大。
    1. 参数query_cache_type,设置使用缓存的场景
      1. 0 (OFF)全不使用
      2. 1(ON)除了显示要求不使用缓存的,其余都走缓存
      3. 2(DEMOND) 除了显示要求使用缓存的,都不走缓存
        1. select SQL_CACHE * from user where id=1
  3. 连接器:mysql服务部署在服务器上,并开放某个端口(127.0.0.1:3306), 客户端需要和这个端口建立连接,从而实现与mysql服务器的通信。这部分由连接器完成。
    1. 客户端建立连接后,如果长时间没有动静,连接器就会将它断开。由参数wait_timeout控制,默认8小时。
    2. 项目中连接数据库一般使用线程池,这样可以复用现有的连接,而不是频繁的创建和销毁他们。
  4. 分析器:词法分析+语法分析
    1. 将sql语句中的关键字识别出来,也会识别出表名、字段名。
    2. 语法分析就是校验这个sql是否能满足sql语法的规范以及是否能正常执行。
  5. 优化器:explain 、执行计划  、成本分析 、索引选择 都是在优化器中实现
    1. 是否使用索引,使用哪个索引
    2. join语句中, 先查询哪个表(一般先查小表)问题:A join B , A的量比B多, 但是A加了限定条件后比B加了限定条件后数据量少, 这时先查哪个表?
  6. 执行器:操作引擎,返回结果
    1. 判断用户有没有表的操作权限。分析器可以做一些初步的校验,但是SQL执行过程中涉及的表可能不止字面上的表,有可能会有触发器这种在运行时才确定的过程, 分析器是不能对这种运行时才确定的表做校验

    InnoDB

    1.   Mysql默认的存储引擎,支持事务、行级锁和外键约束。
    2.   InnoDB有自己的日志系统,称作redo log(重做日志)和undo log(撤销日志)。正是因为有日志,所以才支持事务。
    3.   redo log用于保障数据库的持久性,在数据库宕机的时候可以用来恢复日志。
    4.   undo log用来支持事务的原子性和多版本并发控制(MVCC), 可用于在事务需要回滚的时候撤销sql的执行。

    2、一个mysql更新语句执行过程

            sql执行时如果每次更新都写磁盘, IO成本很高。先写内存日志再写磁盘(预写式日志) 称作WAL技术(Write-Ahead-Logging)

            更新与查询流程不一样,更新语句涉及到两个重要日志, redo log(重做日志) binlog(归档日志)

    1. redo log是InnoDb引擎带来的。是物理日志,记录的是“在某个数据页修改了什么”。 内存空间有限,循环写, 写满时就写回磁盘。
    2. binlog是mysql Server自带的。是逻辑日志,记录的这个语句的原始逻辑。追加写,不会覆盖之前的内容。

    根据这两个日志,再分析update的执行过程:

    (update T set c = c+1 where id = 2;)

    1. 写redolog和binlog是两个独立的过程, 应该要保障其事务性。Mysql内部使用两阶段提交,保障两份日志的一致性。
    2. redo log buffer : 是一块内存,commit之前的多条sql语句对应的日志,先写入rodo log buffer,  在commit的时候才把日志真正写入redo log 文件(文件名是ib_logfile+数字)

    场景分析1: binlog写完, redolog还没commit时crash, 崩溃恢复的时候Mysql怎么处理?

    答:事务可以被提交

    http://www.dtcms.com/wzjs/11123.html

    相关文章:

  1. 域名网站做优化外链seo网页优化工具
  2. 做旅游网站包括哪些栏目广州网站推广联盟
  3. 电商网站设计注意事项奖券世界推广网站
  4. 如何建立自己的摄影网站安卓优化大师下载安装到手机
  5. 青岛 网站优化游戏推广代理
  6. 高端平面网站免费域名注册查询
  7. 海力建设集团有限公司网站网站优化公司怎么选
  8. 专业做国际网站的公司公司全网推广
  9. 沈阳做网站的设计公司免费网站alexa排名查询
  10. 安徽索凯特建设工程有限公司网站网络整合营销方案
  11. 用vs与dw做网站百度seo教程
  12. 武汉购物网站建设唐山百度搜索排名优化
  13. 保定网站建设价格手机网站制作软件
  14. 营销型网站建设+课程广州网站优化平台
  15. 做有网被视频网站网页设计案例
  16. 什么网站做新产品代理谷歌广告优化师
  17. 什么网站可以做十万的分期付款拉新推广平台
  18. 怎么做带购物功能的网站最好的搜索引擎
  19. 网站销售系统怎么做的查询网站
  20. 做房产抵押网站需要什么手续培训平台
  21. 怎么查看网站访问速度seo信息查询
  22. 建设网站只凡科建站怎么样
  23. 做动画视频的网站广州seo优化推广
  24. 网站建设品牌推荐网店营销策划方案
  25. 长春自主建站模板如何成为百度广告代理商
  26. 湖南做旅游网站哪家最好怎么样在百度上推广自己的产品
  27. 有没有做英语试题的网站汉中网络推广
  28. 智能网站建设公司网络推广的含义
  29. 漯河网做网站广州最新重大新闻
  30. 网站主题有哪些内容各平台推广费用