数据库
章绍龙
这个作者很懒,什么都没留下…
展开
-
mysql联合索引最左原则
建立联合索引(id,name,age),索引里数据结构为order by id, name,age: id name age 1 a 3 2 b 2 3 aaa 2 4 bbb 1 5 bbb 2 最左原则,建立了(id),(id,name),(id,name,age)三个索引列, id:此列是全局...原创 2019-02-01 14:53:32 · 283 阅读 · 0 评论 -
mysql事物隔离级别详解
前提条件,两个session开启事物,start transaction; 然后进行一下操作,session分别是A和B 一、读未提交(脏读) AB开始事物后,A修改数据未提交,B可以读到A修改的数据; 二、读已提交(幻读) AB开始事物后,B读取id=1的数据,name=csdn;A修改数据name=博客,并提交;B事物还没有结束,继续读取id=1的数据,发现此时name已经改为”...原创 2019-08-06 10:37:12 · 131 阅读 · 0 评论 -
mysql事物写入过程原理
一、从缓存区到磁盘的过程 innodb_flush_log_at_trx_commit参数设置redo log重做日志策略: 0:commit时,redo log写入到redo log buffer中,每隔固定时间,写入OS buffer并刷新到磁盘;(性能最好,高可用最差) 1:commit时,redo log直接写入OS buffer并刷新到磁盘;(线上环境) 2:commit时,re...原创 2019-08-04 13:19:56 · 1904 阅读 · 0 评论 -
mysql索引解读
一、聚集索引:Innodb存储引擎的索引 1、主键索引:所有数据都存储在主键索引上,使用主键查找效率非常高 2、辅助索引:辅助索引上存储的是主键值,查询整行数据需要先通过此索引找到主键,再通过主键索引找到对应的数据,因为只有主键上有整行数据。如果只查询id和name,那此索引name可以找到id,就不需要再去查主键索引。所以有时会通过建立联合索引查找数据,联合索引上包含了需要的所有数据,如...原创 2019-07-30 21:31:18 · 210 阅读 · 0 评论 -
数据库通用优化手段
1、翻页:取消深翻页,只能上一页和下一页,这样数据库不会频繁的交换内存和磁盘中的数据 2、大字段垂直拆分,使用别的表 3、大表水平拆分 4、大数据量表取消join操作,分多次查询 5、永远使用小结果集驱动大结果集,而非小表驱动大表 6、只取需要的列 7、order by、group by可以放在程序中执行 8、写入压力非常大时,非核心数据可以将数据写入mq,再异步写入数据库 ...原创 2019-06-24 21:57:03 · 141 阅读 · 0 评论 -
跨数据中心部署
一、三数据中心(数据强一致性,延迟高,吞吐量低,安全性高) 三个数据中心都不在同一个地方,写入完主节点后,同时同步到2个从节点 优点:数据一致性高,主节点宕机,选择一个从节点接管主节点 缺点:延时长,同步提交数据,需等待从节点同步完成;主节点写完后,去从节点读可能读不到数据,还未同步过来 优化:读写都放在同一个数据中心,另外两个数据中心做备份用 二、两地三中心(数据强一致性,延迟低...原创 2019-06-25 16:22:16 · 931 阅读 · 0 评论 -
跨数据中心部署方案
作为 NewSQL 数据库,TiDB 兼顾了传统关系型数据库的优秀特性以及 NoSQL 数据库可扩展性,以及跨数据中心(下文简称“中心”)场景下的高可用。本文档旨在介绍跨数据中心部署的不同解决方案。 三中心部署方案 TiDB, TiKV, PD 分别分布在 3 个不同的中心,这是最常规,可用性最高的方案。 优点 所有数据的副本分布在三个数据中心,任何一个数据中心失效后,另外两个数据中心...转载 2019-06-25 16:05:35 · 563 阅读 · 0 评论 -
分库分表查询问题
1、两字段查询,基因法:uid,orderid orderid=唯一id+uid,这样做hash可以保证再同一个表 2、多个字段:映射表 3、es+hbase:大数据量情况下,es中只放需要用到查询条件的字段,全量字段放在hbase中,在es中查出对应的key,然后根据key去hbase中拿到全量数据。 ...原创 2019-06-02 16:07:42 · 1719 阅读 · 0 评论 -
mysql事物隔离级别
读未提交、不可重复读(读已提交)、可重复读、串行化 1、mysql InnoDB默认采用“可重复读”级别 2、可重复读实现原理: a、判断是可重复读级别,创建一个一致性读视图(快照),之后读取数据根据这个快照来读取, b、采用MVCC多版本并发控制,每条数据都有一个版本号,系统会给事物一个当前版本号,本事物读取<=本版本号的数据,另一个事物新插入的数据版本号大于该版本号不会读到,这样...原创 2019-03-27 11:17:28 · 101 阅读 · 0 评论