- 博客(10)
- 收藏
- 关注
原创 排序复习--
快速排序,时间复杂度O(nlogn),空间复杂度O(logn),不稳定。希尔排序,时间复杂度O(nlogn),空间复杂度O(1),不稳定。堆排序,时间复杂度O(nlogn),空间复杂度O(1),不稳定。归并排序,时间复杂度O(nlogn),空间复杂度O(n),稳定。冒泡排序,时间复杂度O(n^2),空间复杂度O(1),稳定。选择排序,时间复杂度O(n^2),空间复杂度O(1),稳定。插入排序,时间复杂度O(n^2),空间复杂度O(1),稳定。
2024-10-08 14:52:45 101
原创 mysql order by 排序原理
我们前面说过sort_buffer的大小控制着使用外排序还是内排序,前面两个图中我们可以看到num_initial_chunks_spilled_to_disk的值都是0,说明目前sort_buffer的大小满足排序所需的内存。正常情况下,使用Limit会启用优先队列的优化,但是最终影响是否启用优先队列优化的还是sort buffer排序内存的大小,如果待排序的N条数据比sort_buffer_size小就使用优先队列优化,采用堆排序,否则还是生成临时文件采用归并排序。这样既可以节省内存又可以节省时间。
2024-09-26 11:38:28 1027 1
原创 多层for循环嵌套使用sql优化
哇,已经有一年多没有写了这来来记录一下一个小小的优化原因:领导发现每天凌晨2点cpu使用率激增 从图可以看出来很有规律性,可以知道这是某个定时脚本的原因,根据执行时间可以定位到该定时脚本。看一看定时脚本的逻辑原来这个脚本是对过去30天每一天--每种票类型--每个省份完成订单总数和售票总数的统计和更新。这里附上一段代码截图 可以看出来之前代码套了3层for循环,按照每天去循环查每种票类型对应每一个省份的逻辑,从order(订单表)中依次统计对应create_time...
2020-05-16 16:54:28 2697
原创 Yaf路由机制
Yaf_Route_Static 分析请求中Request_uri,以/进行如下两种划分/controller/action/parm1/value1/parm2/value2 /module/controller/action/parm1/value1/parm2/value2 module模块必须在app.ini中定义必须得定义Index模块。否则在访问非Modu...
2018-10-16 18:03:56 1682
原创 http1.0 http1.1 http2.0
http1.0协议无状态:借助COOKIE/SESSION 传递身份,状态等信息无连接:每次客户端和服务端发送请求都要建立新的连接队头阻塞:下一个请求必须在上一个请求的响应到达之后才能发送http1.1长连接 keep-alive:客户端和服务器端的连接保持不断开管道化:FIFO 解决了队头阻塞,一个请求的发送不用等到上一个请求的响应返回之后才发送,客户端可以同时发送多个r...
2018-09-27 14:15:08 607
原创 nginx+php
常见web服务器 apache,nginx cgi web服务器协议,web服务器接受一个request,fork一个进程(加载php.ini配置文件,初始化执行环境),执行请求,返回responsefastcgi 高效的web服务器协议,首先创建一个master进程,然后fork几个worker进程,这样当服务器接受一个request然后转发给其中一个worker进程,实现就是之前...
2018-09-27 14:14:56 178
原创 git操作
git log 查看历史commit信息git tag 查看历史tag版本git remote update 可以获取远程仓库里面的tag版本git branch -r 查看远程分支git reset --hard orign/master 强制回退到主分支git diff tag1 tag2 查看两个版本的代码变更信息 tag1,tag2的顺序不同,差别显...
2018-09-27 14:14:33 244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人