数据库
文章平均质量分 89
haikuotiankongdong
这个作者很懒,什么都没留下…
展开
-
数据库面试必备“一条SQL查询语句是如何执行的?”
1.序这个是数据库相对来说底层的东西,所以面试官一般很喜欢问,我记得字节,阿里等大厂的面试官都会问这个,所以今天我们来彻底的学会它。2.简略版本我记得面试官在问到数据库时:“用过数据库吧,奥,用过就行,那用过select语句吗?就比如 select * from student where studentId = 1;这个语句在数据库底层是怎么执行的,可以讲讲吗?”这个时候不要谎,来到我们秀的时间了。如上图,我建议大家脑子里都有一个这样的图,当我们有这样一个图的时候我们就可以很简单直接的把答案说出原创 2021-01-29 22:32:58 · 406 阅读 · 1 评论 -
一篇让你上手mysql安装以及my.ini配置
mysql目前已经作为我们常用的数据库了,今天我们学习来安装一下它。1.下载从官网上下载安装包(也可以公众号回复mysql可以获取)https://dev.mysql.com/downloads/mysql/解压bin:存储可执行文件data:存储数据文件include:存储包含的头文件lib:存储库文件docs:文档share:错误消息和字符集文件2. 安装1.以管理员身份(否则会出错) 打开cmd,切换目录到解压目录D:\software\mysql-5.7.23-winx64原创 2021-01-26 19:09:31 · 2572 阅读 · 1 评论 -
mysqldump命令进阶
01 mysqldump参数介绍1.--all-databases , -A导出全部数据库。mysqldump -uroot -p --all-databases2.--all-tablespaces , -Y导出全部表空间。mysqldump -uroot -p --all-databases --all-tablespaces3.--no-tablespaces , -y不导出任何表空间信息。mysqldump -uroot -p --all-databa..原创 2021-01-22 09:00:25 · 277 阅读 · 0 评论 -
mysqldump命令
为什么使用mysqldump,简单说一下~使用Sqoop进行ETL是一种侵入的方式,需要连接占用mysql生产资源,Sqoop一般用于全量导入(虽然也可以使用–incremental append来进行增量导入,但对删除和修改的数据没办法同步)在网路不通的情况下,只能使用log日志方式ETL,异步而非侵入1、使用mysqldump是对数据表进行备份。2、binlog用于增量日志同步,增删改逻辑都能照顾。备份?mysqldump -uUSER -pPASSWORD DB > filename原创 2021-01-21 11:10:11 · 128 阅读 · 0 评论 -
sql 预编译语句
sql 预编译语句1. 背景本文重点讲述MySQL中的预编译语句并从MySQL的Connector/J源码出发讲述其在Java语言中相关使用。注意:文中的描述与结论基于MySQL 5.7.16以及Connect/J 5.1.42版本。2. 预编译语句是什么通常我们的一条sql在db接收到最终执行完毕返回可以分为下面三个过程:词法和语义解析优化sql语句,制定执行计划执行并返回结果我们把这种普通语句称作Immediate Statements。但是很多情况,我们的一条sql语句可能会反原创 2020-11-25 10:14:20 · 5231 阅读 · 0 评论 -
MySQL开发规范/MySQL 数据库规范
https://cloud.tencent.com/developer/article/1610335原创 2020-11-23 16:50:26 · 126 阅读 · 0 评论 -
navicat中查重并删除
# 查询所有重复的数据SELECT * FROM hao123 WHERE ir_url IN(SELECT ir_url FROM `hao123` GROUP BY ir_url having count(ir_url)>1)# 只显示某几个字段 提高查询速度SELECT ir_title,ir_url FROM hao123 WHERE ir_url IN(SELECT ir_url FROM `hao123` GROUP BY ir_url having count(.原创 2020-06-11 21:55:31 · 4789 阅读 · 0 评论 -
MVCC的实现
https://zhuanlan.zhihu.com/p/64576887https://zhuanlan.zhihu.com/p/40208895https://blog.csdn.net/whoamiyang/article/details/51901888https://www.jianshu.com/p/f692d4f8a53e参考:《高性能MySQL》 InnoDB...原创 2020-04-26 10:40:45 · 291 阅读 · 0 评论 -
MySQL中的日志
MySQL中的日志MySQL中有六种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。其中重做日志和回滚日志与事务操作息息相关,二...原创 2020-04-24 16:44:54 · 134 阅读 · 0 评论 -
Innodb中的事务隔离级别和锁以及MVCC之间的关系
Innodb中的事务隔离级别和锁以及MVCC之间的关系目录 Innodb中的事务隔离级别和锁以及MVCC之间的关系ACID1. 原子性(Atomicity)2. 一致性(Consistency)3. 隔离性(Isolation)4. 持久性(Duration)一次封锁or两段锁?事务中的加锁方式事务的四种隔离级别...原创 2020-04-24 09:56:19 · 1568 阅读 · 4 评论 -
关系型数据库和非关系型数据及其区别
关系型数据库和非关系型数据及其区别关系型数据库关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织优点:1、易于维护:都是使用表结构,格式一致;2、使用方便:SQL语言通用,可用于复杂查询;3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。缺点:1、读写性能比较差,尤其是海量数据的高效率读...原创 2020-04-19 20:29:39 · 2556 阅读 · 0 评论 -
数据库引擎
数据库引擎1事务 MyISAM快, InnoDB提供事务支持2 MyISAM 不支持外键 InnoDB支持外键3 MyISAM支持表级锁 InnoDB表级和行级4 MyISAM全文索引,5 MyISAM 允许没有主键的表存在6表的具体行数 MyISAM保存了 而InnoDB要...原创 2020-03-28 22:32:26 · 117 阅读 · 1 评论 -
数据库怎么分库分表?
数据库怎么分库分表?数据库瓶颈不管是IO瓶颈还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务service来看, 就是可用数据库连接少甚至无连接可用,接下来就可以想象了(并发量、吞吐量、崩溃)。IO瓶颈 第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下...原创 2020-03-28 22:19:24 · 448 阅读 · 0 评论 -
索引
索引1 前言Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结。自上上篇写了手动搭建Redis集群和MySQL主从同步(非Docker)和上篇写了动手实现MySQL读写分离and故障转移之后,索性这次把数据库中最核心的也是最难搞懂的内容,也就是索引,分享给大家。这篇...原创 2020-03-28 20:00:00 · 194 阅读 · 0 评论 -
索引的坏处
索引的坏处1 建立的不对就有问题就比如普通索引和唯一索引 change buffer (过程称为 purge)https://blog.csdn.net/weixin_41563161/article/details/102859171https://blog.csdn.net/weixi...原创 2020-03-23 18:05:27 · 1736 阅读 · 0 评论 -
binlog redo log MVCC
binlog redolog MVCCbinlog:服务层生产日志,数据恢复、数据库复制 redo log:数据在物理层面的修改,断电恢复、保证一致性和持久性,顺序 :写入数据->redo log buffer->file system buffer->fsync操作->redo log file...原创 2020-03-15 00:51:38 · 263 阅读 · 0 评论 -
explain /show processlist
https://www.cnblogs.com/tufujie/p/9413852.html原创 2020-03-13 20:55:02 · 225 阅读 · 0 评论 -
不用数据库实现数据库功能
不用数据库实现数据库功能简略版本阶段1: 无事务, 单线程, 仅存在于内存的数据库.该状态下的数据库, 其实就是一个”索引结构”+”语法分析器”.语法分析器分析SQL语句, 然后根据逻辑, 去执行相应的操作.索引结构则是用来快速查询.由于该版本仅存在于内存, 所以只要你会一些常见的索引算法, 即可完成, ...原创 2020-03-01 11:53:20 · 2062 阅读 · 0 评论 -
Sql语句面试大全总结
Sql语句面试大全总结1建表CREATE TABLE IF NOT EXISTS Test( id INT AUTO_INCREMENT, //自增长 username VARCHAR(20) NOT NULL, //非空 age TI...原创 2020-02-22 11:09:20 · 203 阅读 · 0 评论 -
优化查询方法
优化查询方法1 使用索引 首先在where、order by、group by建立索引2 优化Sql语句通过explain查看SQL语句执行的效果 explain select * from t 不要用 select * from t 不在索引处做运算或使用函数 尽可能使用limit...原创 2020-02-11 18:21:06 · 260 阅读 · 0 评论 -
数据库批处理文件
数据库批处理文件第一步配置环境变量cd /d %~dp0%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exits...原创 2020-01-15 09:40:50 · 435 阅读 · 0 评论 -
数据库---常见面试知识
数据库常见面试知识目录一 索引1. 什么是索引?2. 索引是个什么样的数据结构呢?3. Hash索引和B+树所有有什么区别或者说优劣呢?4. 上面提到了B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据,什么是聚簇索引? 非聚簇索引一定会回表查询吗?5. 什么是覆盖索引6. 在建立索引的...原创 2019-10-25 09:56:28 · 670 阅读 · 0 评论 -
数据库索引怎么实现的
数据库索引怎么实现的(招银网络科技java面经)目录 数据库索引怎么实现的1 简介2索引是如何工作的简介索引数据结构类型哈希表有序数组搜索树索引是怎么提升性能的?3 优缺点4 如何合理的建立索引应该创建索...原创 2019-12-15 20:44:49 · 2984 阅读 · 0 评论 -
MySQL实战45讲 ---如何正确地显示随机消息?
如何正确地显示随机消息?概述为你讲解完 order by 语句的几种执行模式后,就想到了之前一个做英语学习 App 的朋友碰到过的一个性能问题。今天这篇文章,我就从这个性能问题说起,和你说说 MySQL 中的另外一种排序需求,希望能够加深你对 MySQL 排序逻辑的理解。这个英语学习 App 首页有一个随机显示单词的功能,...原创 2019-11-14 21:30:22 · 252 阅读 · 0 评论 -
MySQL实战45讲--- “order by”是怎么工作的?
“order by”是怎么工作的?在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求。还是以我们 前面举例用过的市民表为例,假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返 回前 1000 个人的姓名、年龄。假设这个表的部分定义是这样的:这时,你的 SQL 语句可以这么写:selec...原创 2019-11-14 20:42:55 · 193 阅读 · 0 评论 -
MySQL实战45讲 ---count(*)这么慢,我该怎么办?
count(*)这么慢,我该怎么办?概述在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总 数。这时候你可能会想,一条 select count(*) from t 语句不就解决了吗?但是,你会发现随着系统中记录数越来越多,这条语句执行得也会越来越慢。然后你可能就想 了,MySQL 怎么这么笨啊,记个总数...原创 2019-11-12 10:22:44 · 477 阅读 · 0 评论 -
MySQL实战45讲 ---为什么我的MySQL会“抖”一下?
为什么我的MySQL会“抖”一下?平时的工作中,不知道你有没有遇到过这样的场景,一条 SQL 语句,正常执行的时候特别快, 但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且 持续时间还很短。看上去,这就像是数据库“抖”了一下。今天,我们就一起来看一看这是什么原因。你的 SQL 语句为什么变“慢”了...原创 2019-11-08 09:59:50 · 194 阅读 · 0 评论 -
MySQL实战45讲 ---怎么给字符串字段加索引?
怎么给字符串字段加索引?示例现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天 要讨论的问题。 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的:由于要使用邮箱登录,所以业务代码中一定会出现类似于这样的语句:从第 4 和第 5 篇讲解索引的文章中,我们可...原创 2019-11-08 09:40:01 · 495 阅读 · 0 评论 -
MySQL实战45讲 ---MySQL为什么有时候会选错索引?
MySQL为什么有时候会选错索引?示例在 MySQL 中一张表其实是可以支持多个索引的。但是,你 写 SQL 语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由 MySQL 来 确定的。不知道你有没有碰到过这种情况,一条本来可以执行得很快的语句,却由于 MySQL 选错了索 引,而导致执行速度变得很慢?我们先建一个...原创 2019-11-07 16:44:56 · 329 阅读 · 0 评论 -
MySQL实战45讲 ---普通索引和唯一索引,应该怎么选择?
索引的分类和使用按物理存储角度分:聚集索引表记录的排列顺序和索引的排列顺序一致,所以查询效率快,只要找到第一个索引值记录,其余连续性的记录在物理上一样连续存放.聚集索引的缺点就是修改慢,因为为了使表记录和索引的排列顺序一致,在插入记录的时候,会对数据页重新排序非聚集索引表记录和索引的排列顺序不一定一致,两种索引都采用B+树的结构,非聚集索引的叶子层并不和实际数据页相重叠,而采用...原创 2019-11-01 15:56:27 · 370 阅读 · 0 评论 -
MySQL实战45讲 ---事务到底是隔离的还是不隔离的?
事务到底是隔离的还是不隔离的?1 什么是数据库快照数据库快照,正如其名称所示那样,是数据库在某一时间点的视图。快照设计最开始的目的是为了报表服务。比如我需要出2011的资产负债表,这需要数据保持在2011年12月31日零点时的状态,则利用快照可以实现这一点。oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或...原创 2019-11-01 10:09:55 · 293 阅读 · 0 评论 -
数据库--sql语句性能(mysql45讲 为什么这些SQL语句逻辑相同,性能却差异巨大? 为什么我只查一行的语句,也执行这么慢?)
一条SQL语句执行很慢的原因的哪些目录 一条SQL语句执行很慢的原因的哪些一 、针对偶尔很慢的情况1、数据库在刷新脏页2、拿不到锁二、一直都这么慢的情况例子1没用到索引(1)、字段没有索引(2)、字段有索引,但却没有用索引(3)、函数操作导致没有用上索引2 选错索引...原创 2019-10-25 17:29:03 · 651 阅读 · 0 评论 -
mysql基本知识
mysql基本知识1 Mysql语句规范2mysql常用命令1基本操作2 改符号3 日志4 IF NOT EXISTS5 修改默认配置6查看7改变编码方式8navicat开关日志查看日志状态。showglobalvariab...原创 2019-09-24 11:03:28 · 421 阅读 · 0 评论 -
Mysql 进阶高级知识
Mysql 进阶高级知识1编码设定2导入数据库3导出数据库仅仅是导出结构导出数据4会话变量全局变量5存储过程1 模拟过程12342存储过程变量创建运行Delimiter $$;3...原创 2019-09-24 12:57:37 · 1164 阅读 · 0 评论 -
远程数据苦增加用户以及设置每个用户权限
远程数据苦增加用户以及设置每个用户权限1用root权限登录2新建用户这里的服务器权限是对数据库用户的操作权限是设置对数据库数据表的操作34对这两个进行设置...原创 2019-09-24 13:12:18 · 108 阅读 · 0 评论 -
数据库基本知识
数据库基本知识1sql简介DML(data manipulation language)是数据操纵语言:它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言,增删查改。DDL(data definition langu...原创 2019-09-24 16:42:19 · 568 阅读 · 0 评论 -
MySQL实战45讲--一条SQL查询语句是如何执行的?
一条SQL查询语句是如何执行的?1)通过连接器判断用户名和密码是否正确,若失败,直接返回用户被拒的错误;否则获取用户权限信息;2)若查询缓存开启则通过sql语句查询缓存中是否有key为当前查询的sql,若存在,直接返回value,结束查询;3)若缓存无结果返回,那么通过分析器,对sql语句进行解析,若sql语句有误,...原创 2019-10-07 19:47:15 · 771 阅读 · 0 评论 -
MySQL实战45讲 ---一条SQL更新语句是如何执行的?
一条SQL更新语句是如何执行的?1 概述mysql> update T set c=c+1 where ID=2;与查询流程不一样的是,更新流程还涉及两个重要的日志模块,它们正是我们今天要讨论的主角:redo log(重做日志)和 binlog(归档日志)。2 重要的日志模块:redo log为什么会产生MySQL里也有这...原创 2019-10-08 09:40:20 · 314 阅读 · 0 评论 -
事务最全教程
最全事务1 什么是事务大家所了解的事务Transaction,它是一些列严密操作动作,要么都操作完成,要么都回滚撤销。Spring事务管理基于底层数据库本身的事务处理机制。数据库事务的基础,是掌握Spring事务管理的基础。这篇总结下Spring事务。事务具备ACID四种特性,ACID是...原创 2019-09-21 20:47:06 · 503 阅读 · 0 评论 -
MySQL实战45讲 ---事务隔离:为什么你改了我还看不见?
事务隔离:为什么你改了我还看不见?1 概述简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的。你现在知道,MySQL是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如MySQL原生的MyISAM引擎就不支持事务,这也是MyISAM被InnoDB取代的重要原因之一。2 隔离性与...原创 2019-10-08 11:54:07 · 227 阅读 · 0 评论