![](https://img-blog.csdnimg.cn/2020120921130079.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
文章平均质量分 63
数据库
宇宙超级无敌程序媛
Talk is cheap, show me the code.
展开
-
SQL —— 查询最近一小时的数据
问题在进行数据库查询时,如果数据库表中数据过多,可以增加时间条件进行筛选,减少扫描数据,降低查询超时的风险。那么,如何在sql中选取最近一小时内的数据呢?解决 采用DATE_SUB函数,用当前时间NOW()减去一小时的时间,得到一小时前的时间点,再使用创建时间,作为条件筛选。SELECT * FROM xxx WHERE create_time > DATE_SUB(NOW(),INTERVAL 1 HOUR);...原创 2022-01-11 11:41:29 · 7118 阅读 · 0 评论 -
Redis —— 基本知识大全,面试看这一篇就够了。
本篇文章中总结了Redis相关基础知识,是我自己准备秋招时的总结笔记。把这篇文章中的知识都掌握,面试不会有问题。原创 2020-10-09 00:37:06 · 396 阅读 · 1 评论 -
数据库 —— Mysql索引
索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可。1、越小的数据类型通常更好2、简单的数据类型更好3、尽量避免NULLmysql的索引数据结构采取的是B+树。优点:查询速度快缺点:增删改慢,因为数据库要同步去维护索引文件,所以速度慢为什么加索引能优化慢查询?因为索引其实就是一种优化查询的数据结构,比如Mysql中的...原创 2021-09-08 16:28:44 · 109 阅读 · 0 评论 -
数据库 —— 设计三大范式和五大约束
一、三大范式建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。(一)第一范式(1NF)数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。(二)第二范式(2NF)每一行的数据只能与其中一列相关,即一行数据只做一件事。一条数据做一件事,不掺杂复杂的关系逻辑。同时对表数据的更新维护也更易操作。(三)第三范式(3NF)...原创 2021-08-12 17:37:53 · 130 阅读 · 0 评论 -
ElasticSearch —— 基础知识汇总
一、ElasticSearch介绍一个主要应用于大数据场景下的近实时的全文搜索引擎。 近实时:从添加一个文档到能搜索到这个文档,有一个微小的延迟(通常是1s)。二、ES核心 —— 倒排索引倒排索引是类似于哈希表一样的数据结构,完成由词条到文档id的映射。可以根据搜索词条快速找到该词条对应的所有文档id,然后根据id直接获取文档。三、基础概念(一)集群一个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一...原创 2021-08-10 17:30:31 · 764 阅读 · 0 评论 -
Java、Mybatis事务——commit、rollback、编程式事务
业务场景执行某个SQL组合,如果这个SQL组合中全部执行成功则执行,一旦有一个执行不成功,则全部不执行。Spring 官方文档代码样例import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.S原创 2020-12-01 16:55:33 · 3770 阅读 · 2 评论 -
Spring —— 项目中连接MongoDB
参考Spring文档https://docs.spring.io/spring-boot/docs/2.5.2/reference/htmlsingle/#features.nosql.mongodb引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-原创 2021-08-03 14:39:59 · 510 阅读 · 0 评论 -
数据库 —— 优化
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num = 03.应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。4.应原创 2021-08-02 21:39:40 · 56 阅读 · 0 评论 -
Mysql
数据类型(1)数值类型MYSQL中,FLOAT,DOUBLE,DECIMAL 都可以存储小数,但是FLOAT/DOUBLE 存储的是近似值,对于money等对精度要求高的场合不适用。DECIMAL 类型以字符串形式存储,支持精确的小数运算。(2)日期和时间类型(3)字符串类型引擎:InnoDB,支持事务(ACID),行锁定和外键。只有在你增删改查时匹配的条件字段带有索引时,innodb才会使用行级锁,在你增删改查时匹配的...原创 2021-08-02 21:17:38 · 190 阅读 · 0 评论 -
Spring —— 接口太慢?使用Spring自带缓存!
首先要保证项目中已经接入的redis缓存。Redission的缓存接入教程可参考Redission —— 项目想接入缓存?3分钟即可!添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId>原创 2021-06-30 14:21:12 · 314 阅读 · 0 评论 -
Redission —— 项目想接入缓存?3分钟即可!
依赖引入 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.15.1</version> </dependency>RedissonC原创 2021-06-30 11:24:00 · 352 阅读 · 0 评论 -
数据库 —— 本地安装mysql数据库服务教程
准备条件电脑(Windows)网络下载安装包https://dev.mysql.com/downloads/mysql/下载完成后,将zip进行解压到相关目录。安装以管理员身份打开 cmd 命令行工具,并将目录定位到更改解压的mysql文件夹中的bin文件夹执行安装mysqld install初始化data目录mysqld --initialize-insecure启动服务net start mysql设置root用户密码原创 2021-06-24 14:51:52 · 159 阅读 · 0 评论 -
Java —— Gradle 与 Maven的区别
Gradlegradle是构建工具,为了构建,带有依赖缓存功能。gradle可以完成非常复杂的构建,适合android这种重客户端,组件很多很复杂的应用(巨石应用),如果没有特别复杂的打包要求。gradle没有依赖包管理功能,它本地保存的是依赖缓存,它也没有本地仓库的概念,想在gradle里加一个私有依赖特别麻烦(maven一个命令行就能安装到本地依赖库)。gradle升级也许会有兼容问题。Mavenmaven是依赖包管理工具,通过插件带有一定的构建能力。maven有完善的.原创 2020-11-13 20:19:37 · 689 阅读 · 0 评论 -
数据库 —— MongoDB在java项目中的使用
使用到的数据结构@Autowiredprivate MongoTemplate mongoTemplate;新增save —— 遍历新增// 遍历插入,如果_id已存在,则更新mongoTemplate.save(abc);insert —— 不遍历新增//不遍历的新增,效率较高,如果_id存在,会报错mongoTemplate.save(abc);insertAll —— 批量新增ArrayList<ABC> abcs = new ArrayLis原创 2021-06-22 11:20:33 · 761 阅读 · 0 评论 -
非关系型数据库 —— MongoDB
背景MongoDB 是由C++语言编写的,是一个基于分布式文件存储的面向文档存储的开源数据库系统。连接工具NoSQLBooster for MongoDB概念一个mongodb中可以建立多个数据库。MongoDB的默认数据库为"db"有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的原创 2021-06-17 17:51:16 · 1191 阅读 · 1 评论 -
数据库 —— 关系型数据库与非关系型数据库
关系型数据库与非关系型数据库对比总结关系型数据库 只支持基础类型的存储 提供对事务的处理 查询速度慢,支持sql 不易于扩展,缺少灵活性 ACID 非关系型数据库 支持KV、文档图片的存储等等 不提供对事务的处理 查询速度快,不支持sql 易于扩展,使用灵活 CAP理论,不保证遵循ACID 查询速度:Nosql数据库将数据存储于缓存之中,而且不需要经过SQL层的解析,关系型数据库将数据存储在硬盘中,自然查询速度远不及No原创 2021-06-17 11:31:01 · 385 阅读 · 0 评论 -
Mybatis-Plus —— 简化传统CRUD(使用IService)
问题传统的增删改查,代码繁多,如何进行简化呢?解决1、引入mybatis-plus <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-annotation</artifactId> <exclusions> <原创 2020-12-07 14:00:59 · 761 阅读 · 0 评论 -
SQL分页查询 —— 不同页面的查询结果竟然有重复?!
问题在分页查询时,发现不同页面的查询结果竟然有重复。解决在分页查询时,按照A字段进行排序,但某几个数据的A字段数值相同,导致分页出错,不同页面的查询结果有重复。原创 2020-11-26 22:22:45 · 672 阅读 · 0 评论 -
SQL —— 设置查询条件为7天
问题sql语句如何设置查询条件为最近7天?解决where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(modified_time)原创 2020-11-25 11:38:48 · 485 阅读 · 0 评论 -
SQL —— 解决单引号带来的sql注入问题
问题当使用${}写sql时,如果输入的字段中含有单引号,就会发生sql注入,改变原有的sql逻辑,应该如何处理呢?解决将单引号,替换为两个单引号即可。String regexp = "\'";str.replaceAll(regexp, "\'\'");...原创 2020-11-20 21:18:38 · 1877 阅读 · 0 评论 -
SQL —— 新增数据时,数据相同产生冲突怎么办
问题在向数据库中新增数据时,如果使用insert语句,在数据产生冲突(PRIMARY KEY或UNIQUE索引相同时),就会报错,应该如何处理呢解决INSERT IGNORE在产生数据冲突时,保留原数据,不进行任何操作。REPLACE INTO原理功能与insert类似,但当产生数据冲突时,会先删除旧数据,再生成新数据。数据冲突共有两种可能PRIMARY KEY相同 UNIQUE索引相同返回值被删除和被插入的行数的和注意如果是自增主键的话...原创 2020-11-20 11:32:21 · 1222 阅读 · 0 评论 -
SQL —— 获取数据库中的所有表名
问题如何获取数据库中的所有表名解决SELECT table_name FROM information_schema.TABLES原创 2020-11-18 17:10:00 · 413 阅读 · 0 评论 -
SQL —— #{} 和 ${}
问题sql语句可以使用#{} 或${}进行传参,那么他们有什么区别,使用上有什么需要注意的地方呢?解决在预编译中的处理是不一样的。#{} 在预处理时,会把参数部分用一个占位符 ? 代替,变成如下的 sql 语句:select * from a where name = ?;而 ${} 则只是简单的字符串替换,在动态解析阶段,该 sql 语句会被解析成:select * from a where name = 'zhangsan';实际使用优先使用 #{}。因为 ${} 可能会导致..原创 2020-11-17 21:15:55 · 3425 阅读 · 0 评论 -
Java注解 —— @Param
用法由Mybatis提供,在Dao层使用,用于向xml文件中的SQL语句传递参数。在Dao层使用@param(“studentName”) String namexml可以使用#{studentName}进行映射。xml中使用的是@Param注解括号内的参数。疑问为什么Dao层部分方法中参数不需要使用@Param注解?当方法只有一个参数,并且是Javabean时,在SQL语句中可以直接引用该参数的属性。在项目中常表现为参数是某个实体类,比如现有实体类Student。原创 2020-07-12 00:17:50 · 1199 阅读 · 0 评论 -
Java代码规范 —— 在项目开发过程需要注意的一些小细节(持续更新)
1、定义静态常量时,常量名全大写。2、养成用log输出日志调试的习惯,不要使用System.out。原创 2020-06-18 21:24:38 · 280 阅读 · 0 评论 -
SQL语句 —— 查询某天创建的数据(精确到日)
select test_table.afrom test_table<if test="xxxDate!=null and xxxDate!=''"> and FROM_UNIXTIME(e.created_time,'%Y-%m-%d')=#{xxxDate}</if>原创 2020-06-09 01:26:44 · 3261 阅读 · 0 评论