Http Server implemented by Go(V0.1)
开新坑了,模仿着用Go写一个HTTP Server https://github.com/Forrest554/http-server Version_0.1 封装Server接口 type Server interface { Route(pattern string, handlerFunc fhttp.HandlerFunc) Start(a…
Go基础小计(一)
数组和切片 package main import ( "fmt" ) func main() { /* * 数组 */ // 定义 myArray := [5]int{1, 2, 3, 4, 5} // 变量名 := [数组长度] 变量类型 {} // 通过初始化值确定数组长度: myArray := [...]int{1,2…
单调栈
通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。 739. 每日温度 维护一个栈顶到栈底递减的栈。 当栈为空,或者遍历元素小于栈顶元素,遍历元素的索引入栈 当遍历元素大于栈顶元素,说明找到了,值就是索引相减 class Solution { public: vector<int&…
事务的隔离性
事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在 MySQL中,事务支持是在引擎层实现的。比如 MySQL 原生的MyISAM 引擎不支持事务。 多并发会出现的问题 脏读(dirty read):读到其他事务未提交的数据; 不可重复读(non-repeatable read):前后读取的数据不一致; 幻读(phantom read):前…
日志系统:一条SQL更新语句是如何执行的?
create table T(ID int primary key, c int); update T set c=c+1 where ID=2; 与查询语句不一样的地方:更新流程还涉及两个重要的日志模块 redo log(重做日志)和 binlog(归档日志) 两份日志的原因 因为最开始 MySQL 里并没有 InnoDB 引擎。MySQL 自带…
一条SQL查询语句是如何执行的?
MySQL的主要组成 MySQL逻辑框架图 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 存储引擎层负责数据的…
MyISAM InnoDB存储引擎
MyISAM InnoDB存储引擎 存储引擎结构 MyISAM InnoDB存储引擎是针对于表的存储引擎 MYISAN索引结构(索引文件和数据文件是分离的【非聚集性】):.frm文件->表结构,*.MYI文件->索引 、\.MYD文件->数据 非叶子结点读入RAM,折半查找,找到key所在的叶子结点,然后叶子结点的value就是数…
2022春招实习美团复盘
笔试 签到题:判断一个数是否是好数,使用if、else进行判断即可 数字是11的整数倍。 数字中至少包含两个1 给你若干数字,希望你回答这个数字是不是幸运数 例如:132是11的12倍,满足条件1,101有两个1,满足条件2 如果是幸运数,输出yes,不是,输出no。 乘积为正 有一个序列,序列中仅包含1和-1两种数字 有多少个连续的子序列,序列中…
C++资源管理:堆、栈、RAII
基础概念 C++中的内存管理概要说明 栈:由编译器管理分配和回收,存放局部变量和函数参数。 堆:由程序员管理,需要⼿动 new malloc delete free 进⾏分配和回收,空间较⼤,但可能会出现内存泄漏和空闲 碎⽚的情况。 全局/静态存储区:分为初始化和未初始化两个相邻区域,存储初始化和未初始化的全局变量和静态变量。 常量存储区:存储常量…
协程、线程、进程【ing】
引言:多进程和多线程的应用场景 多进程健壮性:nginx杀死进程后,会自动启动新进程。 通信效率较低 每个进程做的事情比较独立 资源隔离、安全 多线程:redis6.0,提高io的性能:主线程拿到fd后,让io处理线程做数据的存取,然后主线程操作key-value,再发送给客户端。 改用多进程(不同进程、虚拟内存都是独立的):不好。 适用场景: 多…