摘要: 分库分表和数据库分片方案 数据库数据量达到千万级别时查询效率会很低,分库分表是一种很有效的解决方案。 垂直划分和水平划分 垂直划分:垂直划分又分为垂直分库和垂直分表两种,垂直分库就是将关联度低的各种表放在不同的数据库中,垂直分表是针对表的列进行的,将字段拆到其他表中形成新表,这样表的记录就会变小,索 阅读全文
posted @ 2019-09-21 17:51 勇闯8 阅读(1254) 评论(0) 推荐(0) 编辑
摘要: mysql的锁 Mysql三种级别的锁:表级锁、行级锁、页级锁 表级锁适合只读更新很少的情况,行级锁适合更改较多,并发较多的情况 表级锁加锁开销小加锁快,粒度大,行级锁开销大加锁慢,粒度小,页级锁开销和粒度都在两种锁之间 锁与隔离等级 避免脏写(隐式锁):如果某个事务要修改某条记录,先检查有没有记录 阅读全文
posted @ 2019-09-21 14:13 勇闯8 阅读(246) 评论(0) 推荐(0) 编辑
摘要: redo log和undo log、事务 redo log 如果系统突然崩溃,一些在缓存中的修改还没来的及同步到磁盘中,用redo log就可以恢复这些修改,Redo log就是记录这些修改的日志。这些对页面的修改有一些是原子操作,比如有些插入伴随着页面分裂和页的新建(悲观插入),此时这些分裂和修改 阅读全文
posted @ 2019-09-21 13:51 勇闯8 阅读(1462) 评论(0) 推荐(0) 编辑
摘要: mysql的缓存 每次访问一个页的记录需要把整个页加载进一个叫bufferpool的内存区中,即使访问结束页还处于bufferpool中,再次访问该页可以直接从内存中读。 用哈希表来判断页到底缓存了还是没有缓存(用表空间号和页号作为key) 页存入bufferpool中涉及到三个特殊的链表: 1、f 阅读全文
posted @ 2019-09-21 12:20 勇闯8 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 索引和查询优化 添加索引的三种方法 一、Alter table 表名 add 键类型 (列列表) 键类型:primary key/unique key/fulltext index/index(普通索引可以在index后接索引名) 二、建表时在列名 类型 后加索引类型 三、建表时在所有列名后面加索引 阅读全文
posted @ 2019-09-21 11:16 勇闯8 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 外键、超键、候选键 外键 外键:指向另一张表的主键 Foreign key(外键字段) references 表(主键) 子表(外键所在)外键不能指向不匹配的父表主键 父表主键不能随意更改,默认为严格模式,不能删除或更新记录,级联模式,父表更新记录子表也更新,置空模式,父表更新记录子表关联数据置空 阅读全文
posted @ 2019-09-21 10:42 勇闯8 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 连接查询、子查询、联合查询 连接查询 交叉连接 t1 cross join t2 内连接:t1 inner join t2 on 。。满足条件的交集 左外连接: t1 left join t2 on 。。 以左表为主表,取出每一条与另一张对比,条件不匹配非主表字段都置位null 自然内连接和外连接: 阅读全文
posted @ 2019-09-21 10:39 勇闯8 阅读(1344) 评论(0) 推荐(0) 编辑
摘要: 主键、自增、唯一键和三大范式 主键primary key, 加在建表语句中primary key(主键列表),主键对应的字段不允许重复 自增长,在建表语句字段后加auto_increment,这样当对应的字段设置值不给值或给null或直接给默认值时会从表中最大值+1,一个表中只能有一个自增长 唯一键 阅读全文
posted @ 2019-09-21 10:10 勇闯8 阅读(669) 评论(0) 推荐(0) 编辑
摘要: 基本的增删改查和数据类型 数据库database 数据库database: 增:create database k1 删:drop database k1 改:只能修改库选项不常用alter database 库 库选项 具体值 查:show databases (like 。。) 两种库选项:ch 阅读全文
posted @ 2019-09-21 09:54 勇闯8 阅读(403) 评论(0) 推荐(0) 编辑