
数据库知识
文章平均质量分 79
MrJson-架构师
这个作者很懒,什么都没留下…
展开
-
Oracle with as用法
with…as其实就是将经常需要查询的语句抽取出来,形成一个虚拟表,我们后面可以多次使用,达到‘一次解析,多次使用’的效果,大大提高执行的效率。原创 2024-03-14 16:15:56 · 2622 阅读 · 0 评论 -
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
有时候,遇到数据库重复数据,需要将数据进行分组,并取出其中一条来展示,这时就需要用到group by语句。但是,如果mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。原创 2024-02-19 09:38:36 · 27113 阅读 · 3 评论 -
通俗易懂三大范式
通俗易懂三大范式原创 2024-01-30 17:04:49 · 1094 阅读 · 0 评论 -
MyBatis 批量插入数据优化
最近在项目上遇到了批量插入的场景问题,由于每次需要插入超过 10w+ 的数据量并且字段也蛮多的导致如果使用循环单次插入的方式插入数据插入的效率不高。相信读者们在实际开发中也遇到过这样类似的场景,那么批量插入如何实现呢?其实我也是一知半解,之前只见过别人博客上的批量插入实现,对于实际优化上的细节以及优化的程度并不了解。所以正好借此机会,在这里认真地把批量插入的实现及优化过程实操一遍并记录下来,有兴趣的读者们可以接着往下观看,有不对的地方还希望能在评论里指出来。原创 2024-01-25 14:35:33 · 1881 阅读 · 4 评论 -
mysql select 两个字段判断是否相等 形如 select a=b
那也就是说,当两边结果相等的时候会返回1,不相等的时候返回0,日期格式也会自动格式化为一致的类型对比。那回到最开始的题目上,就是3个结果进行对比,看看是不是3个结果都相等。我们已知的结果是1,那的结果就是0了,一整个结果即为0。这个语句的现实意义是:对比数据库保存的日期与当前日志对比是否不相等。不相等返回1(select 0 = 0返回1 ),相等返回0。原创 2022-12-01 10:04:28 · 881 阅读 · 0 评论 -
sql server2008调试存储过程的完整步骤
sql server2008 存储过程原创 2022-06-15 10:20:03 · 2429 阅读 · 0 评论 -
详细Docker安装Redis
一、Docker搜索redis镜像docker search redis可以看到有很多redis的镜像,此处因没有指定版本,所以下载的就是默认的最新版本 。redis latest.二、Docker拉取镜像docker pull redis三、Docker挂载配置文件接下来就是要将redis 的配置文件进行挂载,以配置文件方式启动redis 容器。(挂载:即将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件)1)、挂载redis的配置文件2)、挂载原创 2022-05-23 09:27:38 · 149 阅读 · 0 评论 -
5大步骤+10个案例,堪称SQL优化万能公式
一、前言在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。二、SQL优化一般步骤1、通过慢查日志等定位那些执行效率较低的SQL语句2、explain 分析SQL的执行计划需要重点关注type、rows、filtered、extra。type由上至下,效率越来越高。ALL 全表扫描;index 索引全扫描;range 索引范围扫描,常用语原创 2022-04-16 10:00:50 · 255 阅读 · 0 评论 -
Linux彻底卸载删除Mysql和安装mysql
mysql 卸载1.如果已安装成功 则需要卸载前请先关闭Mysql服务 命令:service mysql stop2.使用 rpm 命令的方式查看已安装的mysql 命令:rpm -qa|grep mysql3.使用yum安装的Mysql需要先进行清除 命令:yum remove mysql mysql-server mysql-libs mysql-server4.再次查询是否有剩余文件 命令:rpm -qa|grep mysql5.使用过rpm -ev +对应文件名 删除剩余原创 2022-01-26 10:01:28 · 14429 阅读 · 6 评论 -
mybatis
开启驼峰命名匹配规则mybatis.configuration.map-underscore-to-camel-case=true原创 2022-01-16 15:39:50 · 101 阅读 · 0 评论 -
Mysql中用exists代替in
exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录,反之如果exists里的条 件语句不能返回记录行,则当前loop到的这条记录被丢弃,exists的条件就像一个bool条件,当能返回结果集则为true,不能返回结果集则为 false如下:select * from user where exists (select 1);对user表的记录逐条取出,由于原创 2021-10-26 11:11:27 · 1583 阅读 · 0 评论 -
MYSQL一次千万级连表查询优化
概述交代一下背景,这算是一次项目经验吧,属于公司一个已上线平台的功能,这算是离职人员挖下的坑,随着数据越来越多,原本的SQL查询变得越来越慢,用户体验特别差,因此SQL优化任务交到了我手上。这个SQL查询关联两个数据表,一个是攻击IP用户表主要是记录IP的信息,如第一次攻击时间,地址,IP等等,一个是IP攻击次数表主要是记录每天IP攻击次数。而需求是获取某天攻击IP信息和次数。(以下SQL语句测试均在测试服务器上上,正式服务器的性能好,查询时间快不少。)准备:查看表的行数:未优化前SQL语句为转载 2021-10-22 10:48:57 · 2102 阅读 · 0 评论 -
Windows下安装使用mysqldumpslow
首先需要安装Perl,在windows下安装Perl,安装过程很简单,从官网 http://strawberryperl.com/ 下载windows安装包,安装好之后,测试perl -v,如果能显示版本号,表示安装成功。mysqldumpslow是一个perl脚本,只需下载并赋权即可执行。D:\MySQL Datafiles>perl mysqldumpslow.pl --help Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]Parse and s原创 2021-09-07 10:16:04 · 2285 阅读 · 0 评论 -
MySQL的自增 ID 用完了,怎么办?
场景如果你用过或了解过MySQL,那你一定知道自增主键了。每个自增id都是定义了初始值,然后按照指定步长增长(默认步长是1)。虽然,自然数是没有上限的,但是我们在设计表结构的时候,通常都会指定字段长度,那么,这时候id就有上限了。既然有上限,就总有被用完的时候,如果id用完了,怎么办呢?今天就一起来学习下吧。自增id说到自增id,相信你的第一反应一定是在设计表结构的时候自定义一个自增id字段,那么就有一个问题啦,在插入数据时有可能唯一主键冲、sql事务回滚、批量插入的时候,批量申请自增值等原因导致自增原创 2021-08-25 09:15:12 · 313 阅读 · 2 评论 -
MySQL-InnoDB究竟如何巧妙实现,4种事务的隔离级别
事务ACID特性,其中I代表隔离性(Isolation)。什么是事务的隔离性?隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。一个事务怎么会干扰其他事务呢?咱们举例子来说明,假设有InnoDB表:t(id PK, name);表中有三条记录:1, shenjian2, zhangsan3, lisicase 1:读脏事务A,先执行,处于未提交的状态:insert into t values(4, wangwu);原创 2021-05-18 09:16:32 · 292 阅读 · 0 评论 -
阿里P8整理Mysql面试题答案
阿里P8整理Mysql面试题答案原创 2020-12-28 21:47:17 · 324 阅读 · 0 评论 -
EXPLAIN SELECT * FROM 各个字段的含义
id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询。select_type列常见的有:A:simple:表示不需要union操作或者不包含子查询的简单select查询。有连接查询时,外层的查询为simple,且只有一个B:primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的select_type即为primary。且只有一个C:union:union连接的两个select查询,第..原创 2020-12-16 15:20:30 · 1873 阅读 · 0 评论 -
MySQL性能优化及架构设计思想
影响因素超高QPS和TPSQPS: 每秒钟处理查询量(同时处理SQL的数量)风险:效率低下的sql并发量 & CPU使用率并发量:同一时间处理的请求的数量 和同时连接数不一样几千连接数大部分是sleep状态风险:大量的并发 数据库连接被占满(max_connections默认100)超高的CPU使用率 CPU资源耗尽导致宕机磁盘IO注意:最好不要在主库上数据库备份大...原创 2019-09-04 14:02:43 · 437 阅读 · 0 评论