随笔分类 -  数据库

摘要:原文地址:https://segmentfault.com/a/1190000021718016 两大类索引 使用的存储引擎:MySQL5.7 InnoDB 聚簇索引 * 如果表设置了主键,则主键就是聚簇索引 * 如果表没有主键,则会默认第一个NOT NULL,且唯一(UNIQUE)的列作为聚簇索引 阅读全文
posted @ 2020-09-17 15:40 ji丶 阅读(313) 评论(0) 推荐(0)
摘要:explain分析查询 使用 EXPLAIN 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。通过explain命令可以得到: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引 阅读全文
posted @ 2020-05-11 00:21 ji丶 阅读(344) 评论(0) 推荐(0)
摘要:一、为什么要对SQL进行优化 我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进行专门的优化,而随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行效率的影响逐渐增大,此 阅读全文
posted @ 2020-05-11 00:17 ji丶 阅读(553) 评论(0) 推荐(0)
摘要:mysql的B+树索引 查找使用了二分查找,redis 跳表也使用了二分查找法,kafka查询消息日志也使用了二分查找法,二分查找法时间复杂度O(logn); 参考:redis的索引底层的 跳表原理 实现 聊聊Mysql索引和redis跳表 redis的跳表原理 时间复杂度O(logn)(阿里) 参 阅读全文
posted @ 2020-05-11 00:11 ji丶 阅读(826) 评论(0) 推荐(0)
摘要:1、MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。 2、 阅读全文
posted @ 2020-05-10 23:52 ji丶 阅读(586) 评论(0) 推荐(0)
摘要:InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。下面我们先介绍一点背景知识,然后详细讨论InnoDB的锁问题。 背景知识 事务(Transaction)及其ACID属性 事务 阅读全文
posted @ 2020-05-10 23:38 ji丶 阅读(1115) 评论(0) 推荐(0)
摘要:前提概要 什么是MVCC 什么是当前读和快照读? 当前读,快照读和MVCC的关系 MVCC实现原理 隐式字段 undo日志 Read View(读视图) 整体流程 MVCC相关问题 RR是如何在RC级的基础上解决不可重复读的? RC,RR级别下的InnoDB快照读有什么不同? 一、前提概要 什么是M 阅读全文
posted @ 2020-05-10 23:31 ji丶 阅读(789) 评论(0) 推荐(0)
摘要:日志系统主要有redo log(重做日志)和binlog(归档日志)。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。 图来自极客时间的mysql实践,该图是描述的是M 阅读全文
posted @ 2020-05-10 23:24 ji丶 阅读(760) 评论(0) 推荐(0)
摘要:MySQL好像从5.0.2版本就开始支持触发器的功能了,本次博客就来介绍一下触发器,首先还是谈下概念性的东西吧: 什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 举个例子,比如你现在有两个表【用 阅读全文
posted @ 2020-05-09 18:06 ji丶 阅读(224) 评论(0) 推荐(0)
摘要:# 以下选项会被MySQL客户端应用读取。 # 注意只有MySQL附带的客户端应用程序保证可以读取这段内容。 # 如果你想你自己的MySQL应用程序获取这些值。 # 需要在MySQL客户端库初始化的时候指定这些选项。 # [client] #password = [your_password] po 阅读全文
posted @ 2020-05-09 15:51 ji丶 阅读(771) 评论(0) 推荐(0)
摘要:主从复制原理 1.数据库有个bin-log二进制文件,记录了所有sql语句。2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。3.让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。4.下面的主从配置就是围绕这个原理配置5.具体需要三个线程来操作:1.bi 阅读全文
posted @ 2020-05-09 11:42 ji丶 阅读(959) 评论(0) 推荐(0)
摘要:一、variable #查看mysql参数 #mysql -uroot -proot -e "show variables;"|grep logbin 二、status #查看mysql状态 #mysql -uroot -proot -e "show status;" #全局状态#mysql -ur 阅读全文
posted @ 2020-05-09 10:11 ji丶 阅读(929) 评论(0) 推荐(0)
摘要:mysql show full processlist 用来查看当前线程处理情况,具体信息请参考官网:https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html show full processlist 返回的结果是实时变化的,是对m 阅读全文
posted @ 2020-05-09 09:53 ji丶 阅读(5109) 评论(0) 推荐(0)
摘要:在MySQL或MariaDB中,任意时间对数据库所做的修改,都会被记录到日志文件中。例如,当你添加了一个新的表,或者更新了一条数据,这些事件都会被存储到二进制日志文件中。二进制日志文件在MySQL主从复合中是非常有用的,主服务器会发送其数据到远程服务器中。 当你需要恢复MySQL时,也会需要使用到二 阅读全文
posted @ 2020-05-09 00:08 ji丶 阅读(212) 评论(0) 推荐(0)
摘要:误删除数据时,可以通过binlog日志文件恢复数据,需要提前开启binlog状态。 原文地址:https://www.cnblogs.com/YCcc/p/10825870.html 刷新binlog参数 -F -A --master-data 阅读全文
posted @ 2020-05-08 23:58 ji丶 阅读(341) 评论(0) 推荐(0)
摘要:mysql之数据备份与还原: 原文地址:https://www.cnblogs.com/q455674496/p/10305997.html 备份: #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。 #2. 逻辑备份: 备份的是建表、建库、插入等 阅读全文
posted @ 2020-05-08 23:39 ji丶 阅读(341) 评论(0) 推荐(0)
摘要:首先我们要知道mysql中 myisam,innodb默认使用的是 Btree索引,至于btree的数据结构是怎样的都不重要,只需要知道结果,既然是索引那这个数据结构最后是排好序;就像新华字典他的目录就是按照a,b,c..这样排好序的; 所以你在找东西的时候才快,比如你找 “中” 这个字的解释,你肯 阅读全文
posted @ 2020-05-08 23:32 ji丶 阅读(373) 评论(0) 推荐(0)
摘要:使用方法,在select语句前加上explain就可以了: EXPLAIN SELECT surname,first_name form a,b WHERE a.id=b.id原文地址:https://www.cnblogs.com/pengyunjing/p/9197430.html 阅读全文
posted @ 2020-05-08 23:26 ji丶 阅读(346) 评论(0) 推荐(0)
摘要:定义: UDF(User-Defined-Function),用户自定义函数对数据进行处理。 UDTF(User-Defined Table-Generating Functions) 用来解决 输入一行输出多行(On-to-many maping) 的需求。 UDAF(User Defined A 阅读全文
posted @ 2018-07-10 00:13 ji丶 阅读(5563) 评论(0) 推荐(0)
摘要:当 Hive 提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。 测试各种内置函数的快捷方法: 创建一个 dual 表 create table dual(id string); load 一个文件(只有一行内容:内容为 阅读全文
posted @ 2018-07-08 00:44 ji丶 阅读(15257) 评论(0) 推荐(0)