
数据库
文章平均质量分 91
江夏、
关注微信公众号:1024笔记;可免费领取海量学习资源和资料
展开
-
MySQL数据库优化的几种方式(笔面试必问)
数据库优化不仅是笔面试中常问的知识点,在实际的开发应用中也会经常用到,如果有不正确的地方欢迎讨论指正!并且如果有其他更好的方法或者本文没有提及的地方,也欢迎交流讨论!原创 2022-07-02 11:47:24 · 2239 阅读 · 0 评论 -
一起学习SQL中各种join以及它们的区别
sql语句中的一些连接查询以及它们之间的区别,另外还有一种full join 表示全连接,但是mysql中不支持,可以使用左连接和右连接的合集进行表示。full join 表示的是左表和右表的并集,但是对于没有匹配的记录,则会以null表示。......原创 2022-07-01 20:27:43 · 1708 阅读 · 0 评论 -
说说with(nolock)的使用
with(nolock)其实是表提示(表提示table hint指的是通过指定锁定方法、一个或多个索引、查询处理操作(如表扫描或索引查找)或其他选项,表提示可在数据操作语言 (DML) 语句执行期间覆盖查询优化器的默认行为。)中的一种。它等同于数据库的4种事务隔离级别中的READ UNCOMMITTED(读未提交)。原创 2022-01-04 21:47:09 · 2846 阅读 · 0 评论 -
Drop、Truncate和Delete究竟怎么删除
作者:江夏| 知乎:www.zhihu.com/people/1024…| GitHub:github.com/JiangXia-10…| CSDN:blog.csdn.net/qq_4115394…| 掘金:juejin.cn/user/651387…| 公众号:1024笔记本文大概2176字,读完共需25分钟前言在数据库种有三个对表中数据进行删除的语法,分别是Drop、Truncate和Delete。关于它们的区别和相同的地方也是在面试的过程中经常遇到的。平时也是用了就用了,哪个用的原创 2021-10-25 21:41:00 · 813 阅读 · 1 评论 -
MySQL日志必知必会
part 1在日常的开发中,我们都会习惯记录日志,通过日志我们可以记录程序在何时何种情况发生过何种事情,有助于我们快速地定位bug和修复bug。在任何一种数据库中,也有着各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的各种事情。在MySQL中,有着四种不同的日志,它们分别是错误日志,二进制日志(也叫BINLOG日志),查询日志以及慢日志。今天这篇文章就来说说,MySQL的这四种常用的日志!part 2一、错误日志错误日志是MySQL中最为重要的日志之一,它主要记录原创 2021-03-29 09:10:15 · 193 阅读 · 0 评论 -
几个必须掌握的SQL优化技巧(一):查看SQL语句的执行频率
part 1在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。这篇文章开始后面的几篇文章将结合自己平时工作和学习中的知识记录下,当面对一个有sql性能问题的数据库时,我们应该从何处入手来进行系统的分析,使得能够尽快定位问题、原创 2021-01-13 19:19:21 · 798 阅读 · 0 评论 -
sql如何对某一个重复字段只取其第一个数据
最近需要写个存储过程对一些数据进行处理,需求类似于这样的:有一个张表(order)记录的是用户购买商品的数据,字段为用户id,用户购买商品的名称,购买时间,这样的话里面的用户id和商品名称肯定就会有重复数据,那么对重复的数据只需要取其第一条记录即可。那么这时候就可以对其使用下面的函数对数据进行分组排序ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)上面的函数表示根据COL1字段对数据进行分组,在分组内部再根据 COL2字段进行排序,而此函数计算的原创 2020-09-13 16:01:29 · 10649 阅读 · 0 评论 -
存储过程的语法讲解
在上一篇文章:别再说不知道什么是存储过程和存储函数了中简单的介绍了存储过程和存储函数以及其使用。其实存储过程是可以进行编程的,所以可以和其他的编程语言一样使用变量、表达式以及控制结构进行编程,从而实现一些复杂和有用的功能。这篇文章就来介绍一下存储过程的一些语法,并通过一些实例来讲解如何使用。一、声明变量在存储过程中可以通过Declare来定义一个局部变量,但是该变量的作用范围只是在Begin...原创 2020-04-26 18:32:59 · 1565 阅读 · 0 评论 -
存储过程和存储函数的简单介绍
今天项目需要写个存储过程,长时间没有写存储过程有点生疏和忘记了,所以想着写一篇文章来总结下存储过程的一些相关知识,算是复习一下加深记忆。一、基本概念这里有两个概念:存储过程和存储函数。存储过程和存储函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的工作,减少数据在数据库和应用服务器之间的传输,能够提高数据库的处理效率。存储过程在高并发数据中使用...原创 2020-04-21 21:07:35 · 2809 阅读 · 1 评论 -
数据库的触发器你了解多少
一、概念触发器是与表有关的数据库对象,指的是在insert\update\delete操作之前或者之后,能够触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以使得应用在数据库端确保数据的完整性以及日志记录,数据校验等操作。并且可以使用OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是类似的,但是现在的触发器只支持行级触发,并不支持语句级触发。二、相关操作1、触发...原创 2020-04-18 20:55:02 · 609 阅读 · 0 评论 -
今天我们来说说MySQL的存储引擎
一、概念和大多数的数据库不同,MySQL中有一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎。存储引擎就是存储数据,建立索引,更新查询数据等技术的实现方式。存储引擎就是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。对于存储引擎的概念百度百科是这样介绍的:MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平...原创 2020-04-18 13:43:57 · 419 阅读 · 0 评论 -
关于数据库的视图,你了解多少
一、什么是视图视图(View)并不在数据库中实际存在,而是一种虚拟表,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。即视图就是执行查询语句后所返回的结果集,所以在创建视图的时候,主要就是创建这条SQL查询语句。对于普通的数据表来说,视图具有以下的一些特点:1、简单:因为视图是查询语句执行后返回的已经过滤好的复合条件的结果集,所以使用视图的用户完全不需要关心后面对应的表...原创 2020-04-05 14:05:33 · 771 阅读 · 0 评论 -
你还不知道什么是数据库的索引吗
一、什么是索引在MySQL的官方文档里对于索引的定义是:索引(Index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。通过以上的官方定义,我们知道索引就是一种能够帮助我们从数据库中高效的查找数据的数据结构。对于索引最多的比较就是...原创 2020-04-04 17:21:35 · 315 阅读 · 0 评论 -
SpringBoot整合Mybatis
一、前言本项目使用的环境:开发工具:Intellij IDEA 2018.1.3springboot: 2.2.5jdk:1.8maven:3.6.2二、正文2.1、注解版首先新建一个SpringBoot项目,具体创建方式可以参考文章:SpringBoot入门:使用IDEA和Eclipse构建第一个SpringBoot项目。项目的pom文件如下:<?xml version...原创 2020-03-16 13:46:00 · 271 阅读 · 0 评论 -
SpringBoot整合Druid配置数据源监控
我们在进行数据访问声明模板和repository之前都需要配置数据源用来连接数据库。数据源就是连接到数据库的一条路径,数据源中并无真正的数据,它仅仅记录的是你连接到哪个数据库,以及如何连接。常见的数据源有很多,比如dbcp,c3p0,druid。目前很多公司使用的是阿里巴巴开源的Druid数据源,因为该数据源不仅能够进行数据访问并且有成套的数据源以及安全监控。接下来就通过SpringBoot整合...原创 2020-03-08 13:36:38 · 1047 阅读 · 0 评论 -
忘记了MySQL的用户名和密码如何修改
长时间不在自己电脑上开发,突然忘记了自己MYSQL的用户名和密码。解决方法如下:1、 首先找到自己电脑mysql.exe和mysqld.exe文件所在的文件夹,比如我的是C:\Program Files\MySQL\MySQL Server 5.5\bin2、Win+R快捷键,输入cmd进入命令行窗口,如果自己电脑的mysql是启动的先关闭mysql服务:net stop mysql...原创 2020-03-07 15:51:18 · 12226 阅读 · 2 评论 -
索引优化
索引的建立对于数据库的高效运行是很重要的,索引可以大大提高数据库的检索速度。所以对于索引的优化能够进一步提高数据库的检索速度。索引的优化一般需要做到以下几点:尽量全值匹配如果使用了复合索引,而查询的列是索引列,不要使用select * 而用索引列最佳左前缀法则创建复合索引的时候,要考虑索引的使用场景,比如创建复合索引key(a,b,c) 在出现where条件的时候一定要出现a,只...原创 2019-12-09 14:04:11 · 451 阅读 · 0 评论 -
sql语句的执行过程
我们都知道一段简短的sql语句其实都不是按照我们书写的顺序从左往右执行,它是按照sql语句中的语法和函数的优先级进行解析,将上一个函数执行的结果返回给下一个函数使用,从而得到最终的结果,并且在sql语句执行的过程中会产生不同的中间临时表。那么sql语句中常见的函数和语法的优先级究竟是什么顺序呢?以下面这段sql语句为例,包含了常见的函数和语法,那么它的执行顺序是什么样的呢select dist...原创 2019-11-08 15:09:03 · 231 阅读 · 0 评论 -
事务的隔离级别
在说明事务的隔离级别之前需要先说明几个概念。1、事务(Transaction)事务是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作,是一组不可再分割的操作集合。这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行。2、事务的四大特性(ACID)?任何支持事务的数据库,都必须具备四个特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性...原创 2019-10-21 15:32:24 · 143 阅读 · 0 评论 -
SQL语言的四种类型
SQL语言有四种类型,即对于数据库的基本操作都属于这四类。分别为;数据定义语言(DDL)、数据查询语言(DQL)、数据操纵语言(DML)、数据控制语言(DCL)数据定义语言(DDL) DDL全称是Data Definition Language,即数据定义语言,定义语言就是定义关系模式、删除关系、修改关系模式以及创建数据库中的各种对象,比如表、聚簇、索引、视图、函数、存储过程和触...原创 2019-10-12 21:34:14 · 5544 阅读 · 0 评论 -
Drop、Truncate和Delete的分析比较
Drop、Truncate和Delete是三个经常使用的对表中数据进行删除的操作,但他们具有一些相同点,又有一些区别,这里进行分析总结。新建一个student表--新建一个student表create table student(--id自增 id int identity(1,1) not null, name varchar(20) null, course varchar...原创 2019-10-07 16:18:57 · 362 阅读 · 0 评论