关于HTTP协议,一篇就够了

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

分类至 网络应用
0条评论

MySQL 5.7 完美的分布式事务支持

分布式事务通常采用2PC协议,全称Two Phase Commitment Protocol。该协议主要为了解决在分布式数据库场景下,所有节点间数据一致性的问题。在分布式事务环境下,事务的提交会变得相对比较复杂,因为多个节点的存在,可能存在部分节点提交失败的情况,即事务的ACID特性需要在各个数据库实例中保证。总而言之,在分布式提交时,只要发生一个节点提交失败,则所有的节点都不能提交,只有当所有节点都能提交时,整个分布式事务才允许被提交。

分布式事务通过2PC协议将提交分成两个阶段:
prepare;
commit/rollback

第一阶段的prepare只是用来询问每个节点事务是否能提交,只有当得到所有节点的“许可”的情况下,第二阶段的commit才能进行,否则就rollback。需要注意的是:prepare成功的事务,则必须全部提交。

分类至 MySQL
0条评论

NetBeans IDE 配置 Less

1、安装Less
第一种方法:先安装node.js,然后使用npm命令安装less:npm install -g less
具体参考Less.js的官网:http://lesscss.org/
第二种方法:直接下载第三方集成安装包(自带node.js):https://github.com/duncansmart/less.js-windows/releases
2、路径配置
打开 NetBeans IDE 的菜单“工具--选项”,配置Less路径
3、参数配置
打开项目属性窗口,配置监视输入输出路径都为“.”(先删除默认项再点击添加),配置编译参数“--include-path=./”
4、其他参数
如果希望编译后的css文件体积最小化(自动去掉空白字符),加入参数 -x 即可,即配置编译参数“--include-path=./ -x”。更多参数请参考命令 lessc -h 获取。

分类至 随笔
0条评论

win10系统docker安装lnmp环境

1、创建目录
首先,位于D盘分别创建用于存放配置文件和数据文件的目录:
D:\dnmp
D:\dnmp\conf
D:\dnmp\html
D:\dnmp\mysql
D:\dnmp\redis
2、安装mysql
安装 mysql 5.7.25 版本,指令如下:
docker run -d --name mysql -v D:\dnmp\mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.25
...

分类至 Docker
0条评论

浅谈MySQL中优化sql语句查询常用的30种方法

本篇文章是对MySQL中优化sql语句查询常用的30种方法进行了详细的分析介绍,需要的朋友参考下。
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 
2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 
3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: 
select id from t where num is null 
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: 
select id from t where num=0 
...

分类至 MySQL
1条评论

MySQL大数据量分页查询方法及其优化

方法1:直接使用数据库提供的SQL语句limit
方法2:建立主键或唯一索引, 利用索引(假设每页10条)
方法3:基于索引再排序
方法4:基于索引使用prepare(第一个问号表示pageNum,第二个?表示每页元组数)
方法5:利用MySQL支持ORDER操作可以利用索引快速定位部分元组,避免全表扫描
方法6:利用"子查询/连接+索引"快速定位元组的位置,然后再读取元组. 道理同方法5

分类至 MySQL
0条评论

MySQL EXPLAIN 命令详解

在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。需要注意的是,生成的QEP并不确定,它可能会根据很多因素发生改变。MySQL不会将一个QEP和某个给定查询绑定,QEP将由SQL语句每次执行时的实际情况确定,即便使用存储过程也是如此。尽管在存储过程中SQL语句都是预先解析过的,但QEP仍然会在每次调用存储过程的时候才被确定。

分类至 MySQL
0条评论

MySQL中的全文索引(InnoDB存储引擎)

5.6版本之后InnoDB存储引擎开始支持全文索引,5.7版本之后通过使用ngram插件开始支持中文。之前仅支持英文,因为是通过空格作为分词的分隔符,对于中文来说是不合适的。
MySQL允许在char、varchar、text类型上建立全文索引。
本文使用的MySQL 版本是5.7.24,InnoDB数据库引擎。

分类至 MySQL
0条评论

深入理解MySQL索引原理和实现——为什么索引可以加速查询?

说到索引,很多人都知道“索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址,在数据十分庞大的时候,索引可以大大加快查询的速度,这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。”
但是索引是怎么实现的呢?因为索引并不是关系模型的组成部分,因此不同的DBMS有不同的实现,我们针对MySQL数据库的实现进行说明。本文内容涉及MySQL中索引的语法、索引的优缺点、索引的分类、索引的实现原理、索引的使用策略、索引的优化几部分。

分类至 MySQL
0条评论

rem、em、px的区别

px:像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。
pt:是一个物理长度单位,指的是72分之一英寸。9pt=12px,可以依次换算。
em:相对长度单位,相对于当前对象内文本的字体尺寸。任意浏览器的默认字体高都是16px,所以未经调整的浏览器都符合: 1em=16px。
rem:是CSS3新增的一个相对单位,可以理解为"root em",相对于根节点html的字体大小来计算的,chrome/firefox/IE9+支持。任意浏览器的默认字体高都是16px,所以未经调整的浏览器都符合: 1rem=16px。

分类至 JS/CSS
0条评论