1.基础架构:一条sql查询语句是如何执行的? mysql> select * from T where ID=10: 2.基础架构:一条sql更新语句是如何执行的? mysql> update T set c=c+1 where ID=2; redo log (1)存储引擎的日志,InnoDB特有的: (2)物理日志 (3)循环写,空间固定会用完: binlog (1)server端日志,所有引擎都有: (2)逻辑日志 (3)追加写,文件写到一定大小,切换下一个,并不会覆盖之前的日志: re…
数据过滤 SQL的数据过滤, 可以减少不必要的数据行, 从而可以达到提升查询效率的效果. 比较运算符 在SQL中, 使用WHERE子句对条件进行筛选, 筛选的时候比较运算符是很重要. 上面的比较运算符, 并不是说每个DBMS都支持, 这里主要说MySQL, 不支持(!>)和(!<)等. WHERE子句的基本格式是: SELECT .....(列名) FROM ......(表名) WHERE ......(子句条件) 举几个例子: SELECT name, hp_max FROM heros…
查询语句 首先, 准备数据, 地址是: https://github.com/cystanford/sql_heros_data, 除了id以外, 24个字段的含义如下: 查询 查询分为单列查询, 多列查询, 全部查询等等: SELECT name FROM heros; // 单列查询 SELECT name, hp_max, mp_max, attack_max, defense_max FROM heros; // 多列查询 SELECT * FROM heros; // 全部查询 学习阶…
MySQL中的SQL是如何执行的 MySQL是典型的C/S架构,也就是Client/Server架构,服务器端程序使用的mysqld.整体的MySQL流程如下图所示: MySQL是有三层组成: 连接层: 负责客户端与服务器端建立连接,客户端发送SQL至服务端; SQL层: 对SQL语句进行查询处理; 存储引擎层: 与数据库文件打交道,负责数据的存储和读取. 其中,SQL层与数据库文件的存储方式无关,我们来看下SQL层的架构: 查询缓存: Server如果在查询缓存中发现了这条SQL语句,就会直接…
了解SQL SQL的两个重要标准是SQL92和SQL99. SQL语言的划分 DDL,也叫Data Definition Language,也就是数据定义语言,用来定义数据库对象,包括数据库.数据表和列. 通过DDL,可以创建.删除和修改数据库和表结构 DML,也叫Data Manipulation Language, 数据操作语言,用它来操作和数据库相关的记录,包括了增加.删除.修改数据表中的记录. DCL,也叫Data Control Language,数据控制语言,用来定义访问权限和安全级…
DDL DDL是DBMS的核心组件,是SQL的重要组成部分. DDL的正确性和稳定性是整个SQL发型的重要基础. DDL的基础语法及设计工具 DDL的英文是Data Definition Language,也就是数据定义语言.定义了数据库的结构和数据表的结构.常用的功能急救室增删改,对应的命令分别是CREATE.DROP和ALTER. 对数据库进行定义 CREATE DATABASE nba; // 创建名为nba的数据库 DROP DATABASE nba; // 删除名为nba的数据库 对数…
1.并发 分工:如何高效地拆解任务并分配给线程 同步:线程之间如何协作 互斥:保证同一时刻只允许一个线程访问共享资源 Fork/Join 框架就是一种分工模式,CountDownLatch 就是一种典型的同步方式,而可重入锁则是一种互斥手段. 2.可见性.原子性.有序性 (1)可见性:缓存导致 (2)原子性:线程切换 count+=1 (3)有序性:编译优化 3.java内存模型 (1)可见性:缓存导致-----按需禁用缓存 (2)有序性:编译优化-----按需禁用 volatile int x…
Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.MySQL提供加全局读锁的方法:Flush tables with read lock(FTWRL)这个命令可以使整个库处于只读状态.使用该命令之后,数据更新语句.数据定义语句和更新类事务的提交语句等操作都会被阻塞.使用场景:全库逻辑备份.风险:1.如果在主库备份,在备份期间不能更新,业务停摆2.如果在…
极客时间 Mysql实战45讲 04讲深入浅出索引(下)极客时间 笔记体会: 回表:回到主键索引树搜索的过程,称为回表覆盖索引:某索引已经覆盖了查询需求,称为覆盖索引,例如:select ID from T where k between 3 and 5在引擎内部使用覆盖索引在索引K上其实读了三个记录,R3~R5(对应的索引k上的记录项),但对于MySQL的Server层来说,它就是找引擎拿到了两条记录,因此MySQL认为扫描行数是2最左前缀原则:B+Tree这种索引结构,可以利用索引的"最左前…
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务.最经典的例子就是转账,你要给朋友小王转100块钱,而此时你的银行卡只有100块钱. 转账过程具体到程序里会有一系列的操作,比如查询余额.做加减法.更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这100块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就要用到“事务”这个概念了. 简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败.在MySQ…
极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间 笔记体会: 方案一,事务相对较长,则占用锁的时间较长,会导致其他客户端等待资源时间较长.方案二,串行化执行,将相对长的事务分成多次相对短的事务,则每次事务占用锁的时间相对较短,其他客户端在等待相应资源的时间也较短.这样的操作,同时也意味着将资源分片使用(每次执行使用不同片段的资源),可以提高并发性.方案三,人为自己制造锁竞争…
极客时间 Mysql实战45讲 04讲深入浅出索引 极客时间(上)读书笔记  笔记体悟 1.索引的作用:提高数据查询效率2.常见索引模型:哈希表.有序数组.搜索树3.哈希表:键 - 值(key - value).4.哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置5.哈希冲突的处理办法:链表6.哈希表适用场景:只有等值查询的场景7.有序数组:按顺序存储.查询用二分法就可以快速查询,时间复杂度是:O(log(N))8.有序数组查询效率高,更新…
目录 "做中学"之"极客时间"课程学习指导 所有课程都可以选的课程 Java程序设计 移动平台开发 网络攻防实践 信息安全系统设计基础 信息安全专业导论 极客时间课程介绍 Winter.程劭非.重学前端 宝玉.软件工程之美 蔡能.从0开始学游戏开发 陈旸.数据分析实战45讲 丁雪丰.玩转Spring全家桶 范学雷.代码精进之路 高磊.9小时搞定微信小程序开发 郝林.Go语言核心36讲 洪亮劼.AI技术内参 胡峰.程序员进阶攻略 胡忠想.从0开始学微服务 黄申.程序员…
https://up2.v.sharedaka.com/video/ochvq0AVfpa71A24bmugS5EewhFM1553702519936.mp4 01 React出现的历史背景及特性介绍 https://up2.v.sharedaka.com/video/ochvq0AVfpa71A24bmugS5EewhFM1553703186653.mp4 02 以组件方式考虑UI的构建 https://up2.v.sharedaka.com/video/ochvq0AVfpa71A24bmu…
视频地址: https://time.geekbang.org/course/intro/163 https://github.com/tangjinzhou/geektime-vue-1 电脑demo的存放路径: D:\MyDemos\VueDemo 视频在电脑上的路径: F:\BaiDu\Vue开发实战\第一章 基础篇 极客时间_Vue开发实战_04.开发环境搭建 极客时间_Vue开发实战_05.Vue组件的核心概念(1):属性 极客时间_Vue开发实战_06.Vue组件的核心概念(2):事…
1.概述 极客时间(https://time.geekbang.org/),想必大家都知道的,上面有很多值得大家学习的课程,如下图: 本文主要内容 使用webmagic采集极客时间中某个专栏课程生成html 使用webmagic采集视频课程的文件到本地 直接看一下最终效果图 专栏课程生成本地html 视频课程中的视频文件采集到本地 2.专栏课程视频采集 大家请先买某个课程,然后才可以采集 1.登录极客时间 登录地址: https://time.geekbang.org/ 2.极客时间中获取专栏i…
订阅了几个极客时间的专栏,一直没有时间去看. 最近,想着如果把内容制作成电子书,利用上下班时间学习一下,岂不是很方便? 在网上搜到一个很好用的开源软件,几分钟就可以把极客时间的专栏做成电子书,简直太棒了,由衷地感谢软件的作者. 制作电子书的开源软件地址是 https://github.com/jachinlin/geektime_dl.…
参考链接:https://www.infoq.cn/article/2018/01/why-geektime 不少朋友都知道我在极客时间App 上开了一个收费专栏<左耳听风>,这个专栏会开设大约一年的时间,一共会发布 104 篇文章.现在,我在上面以每周两篇文章的频率已发布了 27 篇文章了,也就是差不多两个半月的时间.新的一年开始了,写专栏这个事对我来说是第一次,在这个过程中有一些感想,所以,我想在这里说一下这些感受和一些相关的故事,算是一个记录,也算是对我专栏的正式介绍,还希望能得到.大家…
part1 --------------------------------------------------------------------------------------------------------- 1. 前言 这两天看了一下TOM大叔的<深入理解js系列>中的基础部分,依据自己的实际情况,做了读书笔记,记录了部分easy绊脚的问题.写篇文章,供大家分享. 2. 关于HTMLCollection的"实时查询" var divs = document.…
1. 前言 昨天写了<js便签笔记(11)——浏览TOM大叔博客的学习笔记 part1>,简单记录了几个问题.part1的重点还是在于最后那个循环创建函数的问题,也就是多个子函数公用一个闭包数据的问题.如果觉得有兴趣,可以再重新翻出来看看. 今天继续把剩下的问题写完. 2. 作用域链 学js的人,即使初级入门的也都知道“原型链”,但是“作用域链”,可能好多人没有听说过.大部分人都知道或者听说过“闭包”,但是可能有好多人不知道闭包其实和作用域链有莫大的联系.如果理解闭包不从作用域链开始理解,那么…
前言 半年前在极客时间订阅了王争的<数据结构和算法之美>,现在决定认真去看看.看到如何用快排思想在O(n)内查找第K大元素这一章节时发现王争对归并和快排的理解非常透彻,讲得也非常好,所以想记录总结一下.文章内容主要分析归并排序和快速排序原理,并根据它们共同的分治思想,引出如何在 O(n) 的时间复杂度内查找一个无序数组中的第 K 大元素? 归并排序原理 核心思想:将数组从中间分成前后两部分,然后对前后两部分分别进行排序,再将排序好的两个部分有序合并在一起,这样整个数组有序. 归并排序使用的就是…
这篇文章主要的作用是作为 .md文件打开,内部的格式为一个初学者对hexo以及markdown语法运用的笔记 1.Hexo的写文格式 最开始为文章的属性部分,以三横杠-开始,-结束.里面记录了文章的标题,日期,以及目录和标签. 标签的作用明白了,目录的作用还不清楚,清楚之后记录在这里 2.如何让代码在Hexo下更加美观 以一种更为美观的方式在Hexo中记录代码 插入链接 标签插件详细介绍页大专栏  hexo博客的学习笔记> 代码块 代码块使用两个大括号作为上下的界限 123 import req…
异步 I/O 模型 异步 I/O 模型其中的设计模式或是解决方法可以借鉴到分布式架构上来. 史蒂文斯(Stevens)在<UNIX 网络编程>一书 6.2 I/O Models 中介绍了五种 I/O 模型. 阻塞 I/O 非阻塞 I/O I/O 的多路复用(select 和 poll) 信号驱动的 I/O(SIGIO) 异步 I/O(POSIX 的 aio_functions) C10K Problem ,了解 I/O 模型 Thousands of Threads and Blocking…
简介 此笔记只包含<MySQL必知必会>中部分章节的整理笔记.这部分章节主要是一些在<SQL必知必会>中并未讲解的独属于 MySQL 数据库的一些特性,如正则表达式.全文本搜索.MySQL 中的数据类型等. 此笔记可以看作是对<MySQL必知必会>中包含而<SQL必知必会>中不包含的内容的一个补充. 目录 此笔记的所有内容都在下面的链接中: 文档:<MySQL必知必会>…
笔记体会: 1.innodb支持RC和RR隔离级别实现是用的一致性视图(consistent read view) 2.事务在启动时会拍一个快照,这个快照是基于整个库的.基于整个库的意思就是说一个事务内,整个库的修改对于该事务都是不可见的(对于快照读的情况)如果在事务内select t表,另外的事务执行了DDL t表,根据发生时间,要嘛锁住要嘛报错(参考第六章) 3.事务是如何实现的MVCC呢?(1)每个事务都有一个事务ID,叫做transaction id(严格递增)(2)事务在启动时,找到已…
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块.相信你还记得,一条查询语句的执行过程一般是经过连接器.分析器.优化器.执行器等功能模块,最后到达存储引擎. 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢? 我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键ID和一个整型字段c: mysql> create table…
非常荣幸作为晓峰哥的同事,之前就看过这篇文章,重写读一遍,再学习学习. 一.开篇词 初级.中级:java和计算机科学基础.开源框架的使用:高级.专家:java io/nio.并发.虚拟机.底层源码.分布式.安全.性能 java基础.java进阶.java应用开发扩展.java安全基础.java性能基础 第1讲:java平台的理解 java编译器和运行时: javac的编译:编译将java源码生成.class文件,实际是字节码,而不是可以直接执行的机器码. 运行时:JVM通过类加载器(Class-…
vue基础 属性 事件 插槽 指令(Directives) 生命周期 底层原理 vue生态 路由管理器vue Router 状态管理器vuex 同构Nuxt vue实战 实战项目-ant-desing pro vue的开发.测试.打包构建.上线 前置基础 html+css+javascript es6 开发工具 作者推荐用vscode编辑器,插件Das, eslint, gitlen, jest, vetur, vscode-icons , string manipulation vue.js官…
为什么要学习java虚拟机 1.学习java虚拟机的本质,是了解java程序是如何被执行且优化的.这样一来,才可以从内部入手,达到高效编程的目的.与此同时,你也可以为学习更深层级.更为核心的java技术打好基础. 2.学习java虚拟机的好处 (一)可以针对自己的应用,最优化匹配运行参数. (二)可以更好地规避虚拟机在使用中的bug,也可以更快地识别出java虚拟机中的错误. (三)学习最前沿.最成熟的垃圾回收算法实现以及及时编译器的实现,对以后学习其他的代码托管技术很有帮助. (四)虚拟机也可…
Vue CLI的形式搭建环境: vue create hello-world 我们选择default默认的配置,提供babel和eslint的支持.如果你已经对工程化的东西非常了解了.你可以选择自定义的选项:Manually 然后就开始创建项目了. 过程比较的漫长 安装完成后的一个结果: 先进入这个目录,然后执行npm run serve运行程序 我们直接打开8080端口就可以看到效果了…