数据结构与算法之链表

缓存淘汰策略: 先进先出策略FIFO 最少使用策略LFU 最近最少使用策略LRU单链表: 非连续存储 指针串联 结点:内存块 后继指针next:记录下个结点地址的指针 头结点:第一个结点 尾结点:最后一个结点,指针指向空地址 NULL 时间复杂度 插入、删除O(1) 查询O(n) 循环链表: 特殊的单链表 尾结点指针指向链表头结点 适用于存储有循环特点的数据,如约瑟夫问题双向链表: 每个结点有两
阅读全文

数据结构与算法之数组

线性表: 数据排列像一条线一样的结构,只有前后两个方向 数组、链表、队列、栈是线性表结构非线性表: 数据之间不是简单的前后关系 二叉树、堆、图等是非线性表结构数组: 线性表数据结构 连续的内存空间与相同类型的数据 以上两个特性,让数组可以随机访问,但同时要删除或增加数据,为了保证连续性,就需要做大量的数据搬移工作。 下标为什么从零开始? 下标最确切定义应该是"偏移"。a内存地址无需计算一次减法; 历史原因,C语言设计者用0开始计数数组
阅读全文

数据结构与算法之复杂度

事后统计法: 把代码跑一边,通过监控、统计就能得到算法执行时间和占用内存大小。 局限性: 1. 测试结果很依赖测试环境 1. 测试结果受数据规模影响很大渐进时间复杂度: 代码执行时间随数据规模增长的变化趋势,简称时间复杂度 只关注循环执行次数最多的一段代码 加法法则:总复杂度等于量级最大的那段代码的复杂度 乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积大O表示法: 算法执行时间与每行代码执行次数成正比,用 T(
阅读全文

23.mysql 如何保证数据不丢失?

MySQL 如何保证binlog 和 redo log完整性
阅读全文

mysql 覆盖索引,前缀索引以及索引下推

阅读全文

mysql 全局锁和表锁

全局锁和表锁 全局锁 加全局读锁:Flush tables with read lock(FTWRL),做全库逻辑备份 mysqldump singletransaction 会启动一个事务,确保拿到一致性视图(适用于所有的表使用事务引擎的库) 为什么不用 set global readonly = true ? readonly 可能会被用来判断一个库是主库还是从备库...
阅读全文

MYSQL 索引(一)

索引:在存储引擎实现 哈希表 1. 键 值(key value)结构 把值放在数组里,用一个哈希函数把 key 换算成一个确定的位置,然后把 value 放在数组的这个位置。 2. 不是有序的,新增索引很快,做区间查询很慢 3. 适用于只有等值查询的情况 有序数组 1. 等值查询和区间查询场景中的性能非常优秀; 2. 只适用于静态存储引擎 二叉搜索树...
阅读全文

事务隔离

事务隔离 A (Atomicity)原子性 C (Consistency)一致性 I (Consistency)隔离性 SQL 隔离级别 读未提交 一个事务还未提交,它做的变更就能被别的事务看到。 读提交 一个事务提交后,它做的变更才会被其它事务看到。 可重复读 一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的...
阅读全文

一条 SQL 是如何执行的?

一条SQL查询语句是如何执行的? Server 层 大多数核心服务功能; 所有内置函数; 所有跨存储引擎的功能; 例如存储过程,触发器,视图等; 连接器 mysql h$ip P$port u$user p show processlist 查看连接 wait_timeout 参数,控制连接的断开, 默认8小时无操作自动断开...
阅读全文

python第三方模块requests的使用--初级(续)

响应头``` r.headers{ 'contentencoding': 'gzip', 'transferencoding': 'chunked', 'connection': 'close', 'server': 'nginx/1.0.4', 'xruntime': '148ms', 'etag': '"e1ca50269...
阅读全文