数据库
文章平均质量分 75
杨缘一
不断接近,终将到达
展开
-
Packet for query is too large (1032 > 1024). You can change this value on the server by setting the
问题描述:后台开发过程中,运行程序,加载数据时出现问题,没显示数据 提示错误: Packet for query is too large (1032 > 1024). You can change this value on the server by setting the max_allowed_packet’ variable. 问题分析:mysql max_allowed_packe原创 2017-10-30 09:11:16 · 1167 阅读 · 0 评论 -
InnoDB存储引擎表
简单来说,表是关于特定实体的数据集合,这也是关系型数据库模型的核心索引组织表在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。在InnoDB存储引擎表中,每张表都有个主键(primary key),如果在创建时没有显式得定义主键,则会按如下方式选择主键:首先判断表中是否存在非空的唯一索引(unique not null),如果有,该列即为主键...原创 2018-02-21 13:42:50 · 744 阅读 · 0 评论 -
MySQL InnoDB存储引擎 聚集和非聚集索引
B+树索引索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成?我们都知道CPU是很快的,磁盘是很慢的,要想提高数据库的访问效率,可以说非常大的...转载 2018-02-20 13:14:18 · 2136 阅读 · 0 评论 -
InnoDB存储引擎的关键特性-Insert Buffer
InnoDB存储引擎的关键特性InnoDB存储引擎的关键特性包括:插入缓冲(Insert Buffer)两次写(double write)自适应哈希索引(Adaptive Hash Index)异步I/O (Async IO)刷新邻接页(Flush Neighbor Page)插入缓冲(Insert Buffer) 和数据页一样,是物理页的一个组成部分在InnoDB存储引擎中,主键原创 2018-02-20 11:53:37 · 444 阅读 · 0 评论 -
InnoDB存储引擎 Checkpoint技术
缓冲池的设计是为了协调CPU速度和磁盘速度不一致,对于页的操作首先都会在缓冲池中进行。当我们执行update操作时,改变了页中的记录,那此时的页就是脏页,即缓冲池中的页的数据比磁盘的新。数据库需要把新数据刷新到磁盘,以满足数据一致性。 如果是一个页发生变化,就把新数据刷回磁盘,这个开销是非常大的。而且如果在将数据刷新到磁盘的过程中发生了宕机,那么数据就不能恢复了。 为了避免数据丢失,事务数据库...原创 2018-02-19 20:12:21 · 613 阅读 · 0 评论 -
InnoDB存储引擎的缓冲池管理2
LRU list,Free list,Flush list通过show engine innodb status来观察LRU列表和free列表的使用情况和运行状态 由截图可以看出,当前的Buffer pool size共有512个页,即512*16K,总共8MB的缓冲池。Free buffers表示当前Free列表中页的数量,Database pages表示LRU列表中页的数量。 截图中Free原创 2018-02-19 18:55:29 · 515 阅读 · 0 评论 -
InnoDB存储引擎中的缓冲池管理1
InnoDB存储引擎是基于磁盘存储的,为了平衡CPU速度和磁盘速度之间的差距,引入了缓冲池。即通过一块内存区域来弥补磁盘速度较慢对数据库性能的影响。缓冲池是一个比较大的内存区域,其中存放了各种类型的页。那么InnoDB存储引擎是如何对这块较大的内存进行管理的呢? 下面介绍几类算法。改进的LRU通常来说,数据库中的缓冲池是通过LRU(Latest Recent Used,最近最少使用)算法来进行管理原创 2018-02-15 15:49:01 · 583 阅读 · 0 评论 -
InnoDB存储引擎
体系架构InnoDB存储引擎体系架构如下图: 从图可见,InnoDB存储引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作:维护所有进程/线程需要访问的多个内部数据结构缓存磁盘上的数据,方便快速地读取,同时在对磁盘文件的数据修改之前在这里缓存。重做日志(redo log)缓存……后台线程的主要作用是负责刷新内存中的数据,保证缓冲池中的内存缓存的是最近...原创 2018-02-15 11:38:13 · 380 阅读 · 0 评论 -
MySQL体系结构和存储引擎
数据库与实例MySQL是一个可移植的、单进程、多线程架构的数据库 数据库:物理操作系统文件或者其他形式文件类型的集合 实例:MySQL数据库由后台线程以及一个共享内存区组成。数据库实例才是真正用于操作数据库文件的。 MySQL数据库实例在系统上的表现就是一个进程。 应用程序只有通过数据库实例才能和数据库打交道数据库是由一个个文件组成的(一般来说是二进制文件),要对这些文件执行诸如select原创 2018-02-14 10:30:01 · 480 阅读 · 0 评论 -
MySQL的row_format
在mysql中, 若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。若一张表里面存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫动态表,即该表的row_format是dynamic,就是原创 2018-02-21 13:51:59 · 613 阅读 · 0 评论