
SQL
文章平均质量分 73
小白笑苍
沉默是一种生活方式。
展开
-
Linux下安装mysql
先检查当前是否已安装 sudo service mysql start发现没安装,则在线安装 – 安装mysql服务端、核心程序:sudo apt-get install mysql-server – 安装mysql客户端:sudo apt-get install mysql-client安装结束后,检查是否安装并启动成功: – netstat -tap | grep mysql可以根原创 2017-05-03 22:36:02 · 225 阅读 · 0 评论 -
b+树图文详解
转载自:伯乐专栏作者/玻璃猫,微信公众号 - 梦见 漫画:什么是b+树这一次我们来介绍 B+ 树。一个m阶的B树具有如下几个特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中...转载 2019-06-06 21:20:09 · 510 阅读 · 0 评论 -
InnoDB-表相关
索引组织表InnoDB存储引擎中,表都是按主键顺序组织存放的,这种按主键方式存储的表就叫做索引组织表。在InnoDB的存储引擎表中,每个表都有主键,如果创建表时没定义主键,会按一下方式设定主键:表中是否有非空的唯一索引,有则把第一个定义的定为主键如果都不符合则自动创建一个6字节大小的指针来作为主键InnoDB逻辑存储结构所有数据都被逻辑地存放在一个空间,这个空间被称为表空间:表...原创 2019-06-06 17:25:52 · 167 阅读 · 0 评论 -
InnoDB和MySQL-文件
MySQL数据库和InnoDB引擎的各种类型文件:参数文件:告诉MySQL在实例启动时在哪里找到数据库文件,保存某些初始化参数日志文件:错误日志文件,二进制日志文件,慢查询日志文件(记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询),查询日志文件(记录建立的客户端连接和执行的语句)等socket文件:用UNIX socket方式连接时需要的文件pid文件...原创 2019-06-06 16:11:20 · 240 阅读 · 0 评论 -
InnoDB的几个关键特性-自适应hash索引,异步IO和刷新临接页
自适应hash自适应哈希(AHI)是数据库自优化的,无需DBA手动调整。AHI是通过缓冲池的B+树来构造的,所以建立的速度也很快,系统会自动根据访问的频率和模式来未热点页建立哈希索引。对相关页建立哈希索引的条件有:访问模式查询条件一样的情况下访问100次页通过该模式访问的次数为页中记录的1/16由于hash key-value的模式,哈希索引只能用来搜索等值查询(比如WHERE XX...原创 2019-06-06 14:56:07 · 216 阅读 · 0 评论 -
InnoDB的几个关键特性-Double Write(两次写)
InnoDB可能出现部分失效的问题(比如缓冲池往磁盘刷新脏页时写了部分就宕机了)。一般是通过redo log来恢复,但是redo log记录的是对页的物理操作记录,而不是最新页的数据记录,如果页本身发生损坏了,redo log没用double write就是在写之前存一个页的副本,doublewrite由两部分组成:内存中的double write buffer,2MB磁盘共享表空间连续的...原创 2019-06-06 14:32:21 · 424 阅读 · 0 评论 -
InnoDB的几个关键特性-Insert Buffer
InnoDB涉及的几个关键特性有:Insert bufferdouble writeadaptive hash indexasync IOflush neighbor Page插入缓冲 insert bufferInnoDB中主键是唯一标识符,通常行记录的插入顺序是按主键递增顺序插入的(一般以NULL的auto increment),内存中的存储也按续存储。并不是所有主键插入都...原创 2019-06-06 11:10:47 · 350 阅读 · 0 评论 -
SQL GROUP BY and HAVING
GROUP BY and HAVINGBy including a GROUP BY clause functions such as SUM and COUNT are applied to groups of items sharing values. When you specify GROUP BY continent the result is that you get only on...原创 2019-05-31 17:33:53 · 423 阅读 · 0 评论 -
InnoDB引擎-master thread工作方式
master thread是最高的线程优先级,由多个循环组成:loopbackground loopflush loopsuspend loopmaster thread会根据数据库运行状态来在各个循环间动态的切换loop主循环,大部分操作在这个循环,其中分为两部分:每秒钟的操作和每10秒的操作。void master_thread(){ loop: for(int i=0...原创 2019-06-05 16:18:05 · 232 阅读 · 0 评论 -
MYSQL undo redo页介绍
转自https://blog.youkuaiyun.com/alexdamiao/article/details/51872477Undo Log是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。事务的原子性(Atomicity)事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生了错...转载 2019-06-05 10:32:09 · 1231 阅读 · 0 评论 -
InnoDB存储引擎简介-内存区相关
InnoDB引擎是MySQL插件引擎的其中一个,由许多内存块组成一个内存池,主要负责:维护所有进程/线程需要访问的内部数据结构缓存磁盘数据,方便快速的读取,重做日志(redo log)缓冲InnoDB存储引擎是多线程引擎,后台不同的后台线程负责处理不同的任务相关的线程Master Thread核心的后台线程,负责将缓冲池数据异步刷新到磁盘,保证数据的一致性,包括脏页刷新,合并插...原创 2019-06-05 10:30:42 · 239 阅读 · 0 评论 -
MySql实现tab自动补全
修改/etc/mysql/my.cnfvi /etc/my.cnf [mysql] auto-rehash #添加auto-rehash登录mysql时:mysql -u root -p –auto-rehash 然后进入mysql就可以tab自动补全了。原创 2017-05-04 15:07:31 · 4133 阅读 · 1 评论 -
innoDB-全文索引
当B+树无法满足索引要求时,比如根据前几个关键字来查询所有相关数据。InnoDB 1.2.x版本开始支持全文检索倒排索引全文检索一般使用倒排索引来实现。倒排索引和B+树一样也是一种索引结构,它在辅助表中存储了单词与单词自身在一个或多个文档中所在位置的映射(1对多)。主要有两种表现形式:{单词,单词所在文档的ID}{单词,(单词所在文档的ID,在文档中的具体位置)}比如一个表t存储的...原创 2019-06-07 14:58:10 · 5512 阅读 · 1 评论