随笔分类 - Mysql
摘要:Mysql 为了控制事务隔离,防止数据跑偏采用了多种机制来保证事务的准确性; 背景: 1、log 使用(write ahead log),落盘前先写log; 事务开始的时候就记录undo log,用于失败回滚; 事务提交的时候会记录redo log,可以用来回放保证事务提交的一致性;当然redo l
阅读全文
摘要:InnoDB 是按照索引来存储数据的;用户数据都存储在聚簇索引中; 每个索引有自己的数据空间,一个索引会有两个独立的空间(段 segment),一个段用来存储非叶子节点索引数据,一个段用来存储叶子节点数据; 段又会细分为64个块(extend - 1MB),每个块是由256个页(page - 16K
阅读全文
摘要:需求: 有这样一张表(数据有5KW左右),我需要按照时间过滤出一部分数据,然后将这部分数据分页获取; id 主键 create_date 时间戳 (二级索引) 还有其他几十个字段 问题描述: 我写的SQL大致如下: SELECT 很多个字段 FROM 表 WHERE create_date <= '
阅读全文
摘要:Mysql 目前有4种行格式:Redundant、Compact、Dynamic、Compressed Version 5.6 已经默认使用 Compact Version 5.7 默认使用Dynamic Redundant 是比较老的数据格式,Compressed 不能应用在System data
阅读全文
摘要:字符集与字符比较 字符集 字符集是某种字符的集合,比如最常见的ASCII码,由127个字符组成,只需要一个字节就能表示; 我们常说的字符集还是GBK、ISOXXX、UTF8; Mysql 我们使用得最多的字符集就是GBK 和 UTF8了;他们都是变长字符集,如果字符在ASCII范围内就使用一个字节表
阅读全文
摘要:Mysql锁类型: 一、普通锁、读锁(共享锁)、写锁(排他锁); 1、普通锁 串行、互斥 2、读锁 先加读锁后,可以与其他读锁共存 3、写锁 先加写锁,不能与其他锁共存 redo/undo日志 在开始事务前会先保存一份undo日志,这份日志可以用于其他线程读取,也可用于新事务失败后回滚。 inser
阅读全文