![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 96
Apple_Web
吃苹果的程序员正在努力ing...
展开
-
SQL连接与筛选:解析left join on和where的区别及典型案例分析
left join on后面的条件和where条件的区别到底是什么?还记得在刚工作那会,我就写过2篇针对left join on相关的文章,最近又看了下之前的文章,发现又有了新的体会,注意区分left join on 后面的条件 和where 后面的条件------这篇有点low了测试一下你真的理解数据库左连接了吗?--------这篇说实话可以结合我写的例子看看你自己是否掌握了数据库的left join on左连接。原创 2024-06-25 20:58:19 · 1005 阅读 · 0 评论 -
SpringBoot +JdbcTemplate+VUE 实现在线输入SQL语句返回数据库结果
想起来要做这个功能是因为我们公司的预生产环境和生产环境如果想要连接数据库都需要登录堡垒机,然后再通过堡垒机进行跳转到对应定制的Navicat 连接工具进行查询。每次这个过程十分繁琐,所以就想直接在我们的系统上直接做个口子,登录以后,可以直接输入SQL查询,跟直接连接Navitcat效果是一样的。原创 2023-10-22 18:59:25 · 1159 阅读 · 6 评论 -
MySQL数据库加锁实战总结
文章目录基础初始数据参考规则一、update/delete没有索引的记录update 没有索引且存在的记录/update没有索引且不存在的记录/update全表二、update/delete有唯一索引的记录1、update有唯一索引且不存在的记录2、update有唯一索引且存在的记录三、update/delete有普通索引的记录1、update有普通索引且不存在的记录2、update有普通索引且存在的记录四、select lock in share mode/for update没有索引的记录1、sel原创 2020-12-26 14:56:02 · 4042 阅读 · 0 评论 -
不可错过的MYSQL数据库实用命令
数据库在运行时的先后顺序(8)SELECT (9) DISTINCT (11)< Top Num> < select list>(1) FROM [left_table](3)<join_type> JOIN <right_table>(2) ON <join_condition>(4) WHERE <where_condition>(5) GROUP BY <group_by_list>(6) WITH &l原创 2020-12-21 21:08:10 · 393 阅读 · 0 评论 -
测试一下你真的理解数据库左连接了吗?
文章目录前言数据库数据及脚本数据库在运行时的执行顺序左连接概念及误区误区最正常的左连接左连接的各种变形1、左连接查询出来的数量大于左表的数量2、LEFT JOIN ON 后面两个AND3、 ON后面加AND条件:左表的非连接字段s.name='小李'4、 ON后面加AND条件:右表的非连接字段c.is_delete = 05、ON后面加AND条件:右表的连表字段c.cname = 'Java'或者左表的连表hobby字段s.hobby='Java'6、ON直接写死连接属性 ON s.hobby ='Pyth原创 2020-11-07 15:32:02 · 2668 阅读 · 1 评论 -
一文清晰讲解@Transactional 注解失效场景
文章目录引言一、事务二、@Transactional介绍1、@Transactional注解可以作用于哪些地方?2、@Transactional注有哪些属性?propagation属性isolation 属性timeout 属性readOnly 属性rollbackFor 属性noRollbackFor属性二、@Transactional失效场景1、@Transactional 应用在非 public 修饰的方法上2、@Transactional 注解属性 propagation 设置错误3、@Transa原创 2020-11-04 21:53:59 · 2710 阅读 · 0 评论 -
什么是主从复制?mysql主从复制?redis主从复制?
文章目录什么是主从复制为什么需要主从复制mysql的主从复制mysql主从复制数据一致性问题方法 1:异步复制方法 2:半同步复制方法 3:组复制三种复制总结redis的主从复制什么是主从复制是一种数据备份的方案。简单来说,是使用两个或两个以上相同的数据库,将一个数据库当做主数据库,而另一个数据库当做从数据库。在主数据库中进行相应操作时,从数据库记录下所有主数据库的操作,使其二者一模一样。为什么需要主从复制读写分离:通过主从复制的方式来同步数据,然后通过读写分离提高数据库并发处理能力,提高数据原创 2020-06-23 17:35:33 · 2178 阅读 · 0 评论 -
一次非常有意思的sql优化经历
文章目录场景索引优化单列索引多列索引索引覆盖排序场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表create table Course(c_id int PRIMARY KEY,name varchar(10))数据100条学生表:create table Student(id int PRIMARY KEY,name varchar(10))数据70000条学生成绩表SCCREATE table SC( sc_id int PRIMA转载 2020-06-22 10:40:51 · 282 阅读 · 0 评论 -
一文搞懂JDBC和JNDI
文章目录JDBC概念JDBC使用JNDI概念JNDI使用总结JDBC概念1.Java Database Connectivity (JDBC)是一个标准的Java API,它由一组类和接口组成,Java应用程序开发人员使用它来访问数据库和执行SQL语句。2.JDBC(Java Database Connectivity)是由数据库中间服务商提供的,用于连接数据库的Java API。一组类和接口(对接数据库)。通俗的讲就是JDBC用来连接数据库和执行SQL语句,但是它最大的特点是通过java程序去原创 2020-05-25 10:20:53 · 701 阅读 · 0 评论 -
24个经典的MySQL索引问题,你都会了吗?
文章目录1、什么是索引?2、索引有哪些优缺点?索引的优点索引的缺点3、索引使用场景(重点)whereorder byjoin索引覆盖4、索引有哪几种类型?主键索引:唯一索引:普通索引:全文索引:5、索引的数据结构(b树,hash)(1)B树索引(2)哈希索引6、索引的基本原理7、索引算法有哪些?BTree算法Hash算法8、索引设计的原则?9、创建索引的原则(重中之重)10、创建索引的三种方式,删除索引第一种方式:在执行CREATE TABLE时创建索引第二种方式:使用ALTER TABLE命令去增加索引第转载 2020-05-19 13:15:58 · 723 阅读 · 0 评论 -
两种数据库迁移方案你了解吗
停机迁移方案我先给你说一个最 low 的方案,就是很简单,大家伙儿凌晨 12 点开始运维,网站或者 app 挂个公告,说 0 点到早上 6 点进行运维,无法访问。接着到 0 点停机,系统停掉,没有流量写入了,此时老的单库单表数据库静止了。然后你之前得写好一个导数的一次性工具,此时直接跑起来,然后将单库单表的数据哗哗哗读出来,写到分库分表里面去。导数完了之后,就 ok 了,修改系统的数据库连接配置啥的,包括可能代码和 SQL 也许有修改,那你就用最新的代码,然后直接启动连到新的分库分表上去。验证一下,原创 2020-05-08 17:49:09 · 1811 阅读 · 1 评论 -
MySQL之优化实战记录
文章目录MySQL之SQL优化实战记录背景部分网络架构图业务简单说明原数据库设计原查询效率目标业务缺陷问题排查前台慢 or 后台慢sql有什么问题查询优化去除不必要的字段去除不必要的嵌套查询分解sql将分解的sql异步执行优化MySQL配置根据业务,再加上筛选条件将where条件中除时间条件外的字段建立联合索引将where条件中索引条件使用inner join的方式去关联性能瓶颈环境对比优化结果及...转载 2020-05-08 16:08:01 · 391 阅读 · 0 评论 -
一次SQL查询优化原理分析(900W+数据,从17s到300ms)
有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms);操作: 查询条件放到子查询中,子查询只查主键ID,然后使用...转载 2020-04-28 14:43:34 · 289 阅读 · 0 评论 -
为什么代码规范要求SQL语句不要过多的join?
送分题面试官:有操作过Linux吗?我:有的呀面试官:我想查看内存的使用情况该用什么命令我:free 或者 top面试官:那你说一下用free命令都可以看到啥信息我:那,如下图所示 可以看到内存以及缓存的使用情况total 总内存used 已用内存free 空闲内存buff/cache 已使用的缓存avaiable 可用内存面试官:那你知道怎么清理已使用的缓存吗(bu...转载 2020-03-25 08:56:35 · 933 阅读 · 0 评论 -
MySql常用函数手册
MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。在这一讲中将讲解的内容包括:数学函数字符串函数日期和时间函数条件判断函数系统信息函数加密函数格式化函数MySQL提供了众多功能强大、方便易用的函...原创 2020-01-15 22:39:10 · 832 阅读 · 0 评论 -
mysql自带内置库说明
文章目录说明information_schemamysqlperformance_schemasystest说明5.6版本自带的库为:information_schema、mysql、performance_schema、test。5.7版本自带库为:information_schema、mysql、performance_schema、sys;information_schemainf...原创 2020-01-15 19:09:41 · 1260 阅读 · 0 评论 -
深入浅出MySQL的主从复制
概要MySQL Replication (MySQL 主从复制) 是什么?为什么要主从复制以及它的实现原理是什么?MySQL 主从复制概念MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库...转载 2019-10-29 09:51:20 · 245 阅读 · 0 评论 -
范式设计:数据表的范式有哪些,3NF指的是什么?
文章目录数据库的设计范式都包括哪些数据表中的那些键从 1NF 到 3NF总结在日常工作中,我们都需要遵守一定的规范,比如签到打卡、审批流程等,这些规范虽然有一定的约束感,却是非常有必要的,这样可以保证正确性和严谨性,但有些情况下,约束反而会带来效率的下降,比如一个可以直接操作的任务,却需要通过重重审批才能执行。实际上,数据表的设计和工作流程的设计很像,我们既需要规范性,也要考虑到执行时的方便性...原创 2019-12-04 11:40:54 · 3229 阅读 · 0 评论 -
B树/B+树/B*树及在数据库索引的运用
文章目录二叉查找树平衡二叉树(AVL Tree)平衡多路查找树(B-Tree)插入操作B+TreeB+树相比于B树的查询优势拓展:B*树 B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)...原创 2019-12-04 10:04:29 · 1014 阅读 · 0 评论 -
数据库的聚集索引和非聚集索引
文章目录聚集(clustered)索引,也叫聚簇索引非聚集(unclustered)索引总结基于主键索引和普通索引的查询有什么区别?聚集(clustered)索引,也叫聚簇索引定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。注:第一列的地址表示该行数据在磁盘中的物理地址,后面三列才是我们SQL里面用的表里的列,其中id是主键,建立了聚集索引。...原创 2019-12-03 23:53:11 · 1773 阅读 · 0 评论 -
Mysql的int(1)和int(M)的区别
MySQL中我们建表的时候,类型可以用int(10), 这是什么意思呢?首先我们看 MySQL的整型类型有这样几种:类型占用字节tinyint1smallint2mediumint3int4bigint8这是决定存储需要占用多少字节,那么后边的数字(M)代表什么意思呢?tinyint(M), M默认为4;SMALLINT(M), ...原创 2019-11-23 11:18:34 · 1430 阅读 · 0 评论 -
MySQL全文索引和like
文章目录概念版本支持使用全文索引测试全文索引总结几个注意点概念通过数值比较、范围过滤等就可以完成绝大多数我们需要的查询,但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较。全文索引就是为这种场景设计的。你可能会说,用 like + % 就可以实现模糊匹配了,为什么还要全文索引?like + % 在文本比较少时是合适的,但是对于大量的文本数据检索...原创 2019-11-09 19:54:37 · 3850 阅读 · 0 评论 -
数据库概念总结
总的可以分为这几个部分(记忆为3344):三大范式 三个SQL语言集四个完整性约束 四个数据库的事务特性文章目录三大范式:三个SQL语言集:四个完整性约束:四个数据库的事务特性:三大范式:第一范式:原子性:是指每列的数据不能再分裂出其他的列例如:联系人的中的姓名,电话,性别,其中电话不属于第一范式,要属于第一范式的话就要对电话在进一步分裂(姓名,性别,手机,家庭电话)第二...原创 2019-09-01 16:20:38 · 1692 阅读 · 0 评论 -
mysql和oracle分页
一、Mysql使用limit分页select * from stu limit m, n; //m = (startPage-1)*pageSize,n = pageSizePS:(1)第一个参数值m表示起始行,第二个参数表示取多少行(页面大小)(2)m= (2-1)*10+1,n=10 ,表示 limit 11,10从11行开始,取10行,即第2页数据。(3)m、n参数值不能在语句当中...原创 2019-09-10 22:10:53 · 265 阅读 · 0 评论 -
数据库优化
优化思路 优化上有两个主要方面:安全与性能 安全 —> 数据可持续性 性能 —> 数据的高性能访问优化维度 硬件、系统配置、数据库表结构、SQL及索引 优化成本:硬件>系统配置>数据库表结构>SQL及索引SQL语句优化:①选择最有效率的表名顺序,数据库的解析器按照从右到左的顺序处理FROM子句中的表名,FRO...原创 2019-09-10 22:19:15 · 209 阅读 · 0 评论 -
数据库之索引,视图,存储过程(函数)和触发器
索引定义: 索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度;类似于图书的目录,方便快速定位,寻找指定的内容;分类:1,普通索引:这类索引可以创建在任何数据类型中;2,唯一性索引:使用 UNIQUE 参数可以设置,在创建唯一性索引时,限制该索引的值必须是唯一的;3,全文索引:使用 FULLTEXT 参数可以设置,全文索引只能创建在 CHAR,VARCHAR,TE...原创 2019-09-10 22:20:25 · 1703 阅读 · 0 评论 -
数据库是否需要建立外键
建立外键的好处:1) 由数据库保证数据完整性,比程序保证完整性更可靠,多应用时(如有应用A,B,C他们之间的实体存在关联关系),由程序来保证数据完整性变得困难2) 外键约束使得数据库的ER图可读性变强,有助于业务逻辑设计不建立外键的好处:1) 可以用触发器或应用程序保证数据的完整性2) 开发变得简单,维护数据时不用考虑外键约束3) 性能高,大数据量插入操作时不用考虑维护外键讨论结果:...原创 2019-09-10 22:21:03 · 1150 阅读 · 0 评论 -
注意区分left join on 后面的条件 和where 后面的条件
有两张表,项目表bizProject和专家投票表ExpertVote, 需要做一个功能让登录人进行反复投票,也就是查询出登录人未投票和已经投票过的项目。假设登录人ID为6。项目表的字段有:主键(ID)、项目名称(projectName)。专家投票表的字段有:主键(ID)、投票意见(passFlag)、投票人ID(SysUserId)、项目ID(BizProjectId)。正确的查询是以下第一...原创 2019-09-10 22:22:45 · 562 阅读 · 0 评论 -
详解数据库的事务
文章目录事务简介事务隔离事务隔离级别事务使用事务简介如果要执行一系列的操作,而这些操作最终是以整体的原子操作的形式完成的话,事务就是必须的。关于事务的理论中,银行转账问题是最经典的例子:当把钱从一个银行帐号转移至另外一个银行帐号的时候,这个操作要由两个步骤来完成,首先要将资金从一个银行帐号取出,然后再将其存入另一个银行帐号。如果资金已经从一个银行帐号取出了,在将资金存入另一个银行帐号之前或者进...原创 2019-09-28 23:45:08 · 241 阅读 · 0 评论 -
数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇写在前面1. mysql的架构介绍mysql简介概述高级MysqlmysqlLinux版的安装mysql配置文件mysql逻辑架构介绍mysql存储引擎2. 索引优化分析性能下降SQL慢常见通用的Join查询索引简介性能分析索引优化3. 查询截取分析查询优化慢查询日志批量数据脚本Show Profile全局查询日志4. My...转载 2019-10-03 16:37:30 · 280 阅读 · 0 评论 -
mysql可重复读现象及原理分析
mysql可重复读现象及原理分析一、可重复读我们先看看现象,再分析原理。我的mysql版本是5.5。下面是一张表,只有一条数据,并且我开启了事物此时,另一个事物将record加1,因此我在开启一个命令行客户端,执行下面的命令:成功加1之后,实际上,数据库中record肯定是2。然后回到之前的客户端,再查一次:没毛病,record还是1,果然是可重复读。有些人以为mysql的可重...转载 2019-10-07 15:45:34 · 596 阅读 · 0 评论 -
mysql 很实用的函数解析
文章目录CONCAT和CONCAT_WS:GROUP_CONCAT 和GROUP BY:GROUP BY 结合聚合函数:Having和Where的用法区别:时间分组格式化函数:数据库数据:CONCAT和CONCAT_WS:#把信息用CONCAT连接SELECT CONCAT (id, ',', username, ',', PASSWORD) AS info FROM my_test;...原创 2019-09-01 15:11:54 · 1644 阅读 · 0 评论