随笔分类 - MYSQL
摘要:(一)背景知识: 1 binlog binlog 我们中文一般称作归档日志, 是 MySQL Server 层的日志,而不是存储引擎自带的日志,它记录了所有的 DDL 和 DML(不包含数据查询语句)语句,而且是以事件形式记录,还包含语句所执行的消耗的时间等,需要注意的是: binlog 是一种逻辑
阅读全文
摘要:分库分表 一、为什么要分库分表 关系型数据库以MySQL为例,单机的存储能力、连接数是有限的,它自身就很容易会成为系统的瓶颈。当单表数据量在百万以里时,我们还可以通过添加从库、优化索引提升性能。一旦数据量朝着千万以上趋势增长,再怎么优化数据库,很多操作性能仍下降严重。为了减少数据库的负担,提升数据库
阅读全文
摘要:一、锁的分类1、范围:全局锁、表级锁、行级锁2、功能分类:共享锁、排它锁 二、数据库的全局锁 加锁:mysql> flush tables with read lock; 释放锁:mysql> unlock tables; 三、MySQL的表级锁(都是Server层实现的) 1、表级的共享锁:loc
阅读全文
摘要:索引数据结构的选择:Hash表、二叉树、平衡二叉树、(红黑树近似于平衡二叉树)、B树、B+树1)Hash表:Java的HashMap、TreeMap就是Hash表结构,以键值对存储,时间复杂度是O(1),但是不支持范围的快速查询,范围查询时得需要全表扫描。 2)二叉查找树:二叉树的特点是每个节点最多
阅读全文
摘要:mvcc介绍 MVCC是数据库提供并发访问控制的一种技术。其核心理念是数据快照,不同的事务访问不同版本的数据快照,从而实现不同的事务隔离级别。虽然是说具有多个版本的数据快照,但这并不意味着数据库必须拷贝数据,保存多份数据文件,这样会浪费大量的存储空间。mysql的InnoDB通过事务的undo日志巧
阅读全文
摘要:(一)背景: 相对其他数据库而言,MySQL 的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;Inn
阅读全文