MySQL 水平拆分(读书笔记整理)】的更多相关文章

转:http://blog.csdn.net/mchdba/article/details/46278687 1,水平拆分的介绍 一般来说,简单的水平切分主要是将某个访问极其平凡的表再按照某个字段的某种规则来分散到多个表之中,每个表中包含一部分数据. 简单来说,我们可以将数据的水平切分理解为是按照数据行的切分,就是将表中的某些 行切分到一个数据库,而另外的某些行又切分到其他的数据库中.当然,为了能够比较容易 的判定各行数据被切分到哪个数据库中了,切分总是都需要按照某种特定的规则来进行的. 如根据…
前言:说到优化mysql,总会有这么个回答:水平拆分,垂直拆分,那么我们就来说说什么是水平拆分,垂直拆分. 一.垂直拆分 说明:一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业务将表进行分类,分布到不同的数据库上面,这样也就将数据或者说压力分担到不同的库上面. 解释:专库专用 优点: 1.拆分后业务清晰,拆分规则明确. 2.系统之间整合或扩展容易. 3.数据维护简单. 缺点: 1.部分业务表无法join,只能通过接口方式解决,提高了系统复杂度. 2.受每种业务不同的限制存在单…
  垂直 垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表 通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张表; 把text,blob等大字段拆分出来放在附表中; 经常组合查询的列放在一张表中; 垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用jion关键起来即可; 水平拆分 水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放. 水平拆分的一些技巧 1. 拆分原则 通常情况下,我们使用取模的方式来进行…
目前很多互联网系统都存在单表数据量过大的问题,这就降低了查询速度,影响了客户体验.为了提高查询速度,我们可以优化sql语句,优化表结构和索引,不过对那些百万级千万级的数据库表,即便是优化过后,查询速度还是满足不了要求.这时候我们就可以通过分表降低单次查询数据量,从而提高查询速度,一般分表的方式有两种:水平拆分和垂直拆分,两者各有利弊,适用于不同的情况. 水平拆分 水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放. 这里写图片描述  通常情况…
目录 表 索引组织表 InnoDB逻辑存储结构 INNODB行记录格式 INNODB数据页结构 约束 视图 分区表 表 ​ 表就是关于特定实体的数据集合,是关系型数据库模型的核心. 索引组织表 ​ 在INNODB存储引擎中,表都是根据主键顺序组织存放的.这种存储方式的表称为索引组织表.在INNODB存储引擎表中,每张表都有个主键,如果在创建表时没有显式地定义主键,则INNODB存储引擎会按如下方式选择或创建主键. 首先判断表中是否有非空的唯一索引,如果有,则该列为主键. ​ 表中有多个非空唯一索…
索引与算法 INNODB存储引擎索引概述 ​ INNODB存储引擎支持以下几种常见的索引: B+树索引 全文索引 哈希索引 ​ InnoDB存储引擎支持的哈希索引是自适应的.会根据表的情况自动添加 ​ B+树索引就是传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引. ​ B+树索引并不能找到一个给定键值的具体行.B+数索引能找到的只是被查找数据行所在的页.然后数据库通过把页读入到内存中,再在内存中查找,最后得到要查找的数据. 数据结构与算法 二分查找法 ​ 有序序列使用…
1. 任何执行时间长于 wait_timeout或interactive_timeout选项值得备份,都会导致会话被关闭,这也会隐含执行UNLOCK TABLES命令.2. 对于使用FLUSH TABLES WITH READ LOCK的备份策略来讲,一个共同的缺陷是它们需要两个独立的线程来完成备份过程.运行FLUSH TABLES WITH READ LOCK命令, 然后从当前连接退出将自动执行一条UNLOCK TABLES命令.从FLUSH TABLES WITH READ LOCK成功返回…
第一章 整洁代码 "我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的,整洁的代码总是看起来像是某位特别在意他的人写的.几乎没有改进的余地,代码作者设么都想到了,如果你企图改进它,总会回到原点,赞叹某人留给你的代码" ---Michael Feathers "整洁的代码只做好一件事" ---Bjarne Stroustrup 第二章 有意义的命名 1 变量名要名副其实 即顾名思义,变量.函数或者类的名称应该能告诉你,它为什么会存在,他做什么事,应该怎么用…
事务的实现 ​ 事务隔离性由锁来实现.原子性.一致性.持久性通过数据库的redo log和undo log来完成.redo log称为重做日志,用来保证事务的原子性和持久性.undo log用来保证事务的一致性. ​ redo和undo作用都是一种恢复操作. redo: 恢复提交事务修改的页操作, 物理日志,记录的是页的物理修改操作. 保证事务的持久性 顺序写 undo: 回滚行记录到某个特定版本 逻辑日志,根据每行进行记录 帮助事务回滚和MVCC功能 随机读写 redo 基本概念 重做日志用来…
锁 ​ 锁是数据库系统区分与文件系统的一个关键特性.为了保证数据一致性,必须有锁的介入.数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性. lock与latch ​ 使用命令可以查询latch信息 SHOW ENGINE INNODB MUTEX; ​ 对于lock信息查看就很直观 1.SHOW ENGINE INNODB STATUS 2.information_schema架构下的表INNODB_TRX INNODB_LOCKS INNODB_LOCK_WAITS…