
db
SoLucky2017
这个up主有点懒,懒上青天
展开
-
sql优化
1 避免使用 select * 2 用 union all 代替 union 3 小表驱动大表 4 批量操作 5 多用 limit 6 in 中值太多 7 增量查询 8 高效的分页 9 用连接查询代替子查询 10 join 的表不宜过多 11 join 时要注意 12 控制索引的数量 13 选择合理的字段类型 14 提升 group by 的效率 15 索引优化 ..原创 2022-02-13 16:45:02 · 139 阅读 · 0 评论 -
MySQL模糊查询再也用不着 like+%
# 前言我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较,全文索引就是为这种场景设计的。全文索原创 2022-01-14 14:36:47 · 148 阅读 · 0 评论 -
再见MybatisPlus,阿里推出新ORM框架
使用fluent mybatis也可以不用写具体的 xml 文件,通过 java api 可以构造出比较复杂的业务 sql 语句,做到代码逻辑和 sql 逻辑的合一。不再需要在 Dao 中组装查询或更新操作,或在 xml 与 mapper 中再组装参数。那对比原生 Mybatis,Mybatis Plus 或者其他框架,FluentMybatis提供了哪些便利呢?需求场景设置我们通过一个比较典型的业务需求来具体实现和对比下,假如有学生成绩表结构如下:createtable`student_..原创 2021-12-05 18:43:55 · 135 阅读 · 0 评论 -
mysql 查找最近一条记录_关于mysql查询最近一条记录
关于mysql查询最近一条记录最近项目中遇到需要查询记录当前时间最近的一条记录的问题,开始感觉无从下手,后来逐步发现了三种解决方案。下策——查询出结果后将时间排序后取第一条select * from awhere time<="2017-03-29 19:30:36"order by time desclimit 1这样做虽然可以取出当前时间最近的一条记录,但是一次查询需要将表遍历一遍,对于百万以上数据查询将比较费时;limit是先取出全部结果,然后取第一条,相当于查询中占原创 2021-07-19 09:13:11 · 4592 阅读 · 1 评论 -
mysql 分组查询最新的/最高的一条记录
方法:mysql取分组后最新的一条记录,下面两种方法.一种是先筛选出最大和最新的时间,在连表查询.一种是先排序,然后在次分组查询(默认第一条),就是最新的一条数据了 #select * from t_assistant_article as a, (select max(base_id) as base_id, max(create_time) as create_time from t_assistant_article as b group by base_id ) as b whe...原创 2021-07-19 09:08:05 · 1947 阅读 · 0 评论 -
mybatis mapper建表
package com.wanda.desk.dao.mmapper;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Update;/** * @Classname KesuIdsMapper * @Description TODO * @Date 2021/6/16 19:05 * @C.原创 2021-06-17 09:26:35 · 1474 阅读 · 1 评论 -
用户-角色-权限-连表查询
下面是用户信息表:tb_user表:tb_user_role表结构:tb_role表结构:tb_role_permission表结构:tb_permission表结构:原创 2021-06-07 14:04:14 · 545 阅读 · 0 评论 -
Navicat for mysql 出现1251错误,Clinent does not support authentication protocol requested by server
安装了最新版的MySQL数据库,结果Navicat连接Mysql报1251错误在网上查的是,出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.我常用的是第二种方式ALTER USER 'root'@'localhost' ID...原创 2021-04-27 08:48:26 · 491 阅读 · 0 评论 -
免费安装navicate
https://www.cnblogs.com/yinfei/p/11427259.html原创 2021-04-27 08:35:24 · 283 阅读 · 0 评论 -
创建mysql
Linux下安装mysql-5.7.24Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的难题,而且很多时候按照教程也没有能够安装成功,安装过程出现各种各样的错误。下面记录了我在Linux(Centos 7)环境下安装Mysql的完整过程,实操记录,绝非水文,如有错误或遗漏,欢迎指正。本文档讲解安装版本为mysql-5.7.24,对于5.7.24之原创 2020-11-18 09:51:48 · 386 阅读 · 0 评论 -
read write锁
原创 2020-08-20 09:32:22 · 242 阅读 · 0 评论 -
mysql索引优化
场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表createtableCourse(c_idintPRIMARYKEY,namevarchar(10))数据100条学生表:createtableStudent(idintPRIMARYKEY,namevarchar(10))数据70000条学生成绩表SCCREATEtableSC(sc_idintPRIMARYKEY,...原创 2020-05-20 09:44:46 · 183 阅读 · 0 评论 -
SQL性能优化,太太太太太太太有用了
本文主要针对的是关系型数据数据库MySql。键值类数据库可以参考:https://www.jianshu.com/p/098a870d83e4先简单梳理下Mysql的基本概念,然后分创建时和查询时这两个阶段的优化展开。1 基本概念简述1.1 逻辑架构 第一层:客户端通过连接服务,将要执行的sql指令传输过来 第二层:服务器解析并优化sql,生成最终的执行计划并执行 第三层:存储引擎,负责数据的储存和提取 1.2 锁数据库通过锁机制来解决并发场景.原创 2020-05-12 11:43:57 · 144 阅读 · 0 评论 -
为什么选用自增量作为主键索引
https://blog.youkuaiyun.com/yue_2018/article/details/89333826MyISAM存储引擎MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM索引的原理图:这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文...原创 2020-01-17 10:47:44 · 470 阅读 · 0 评论 -
MySQL事务,这篇文章就够了
0什么是事务事务(Transaction) 是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都 执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每 个事务结束时,都能保持数据一致性。同时,事务有着严格的地定义,必须满足四个特性,也就是我们一直说的ACID,但是,并不是说各种数据库就一定会满足四个特性,对于不同的数据库的实现来说...原创 2019-12-19 11:39:38 · 358 阅读 · 0 评论 -
用了这么久的数据库连接池,你知道原理吗?
这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。一、早期我们怎么进行数据库操作1、原理一般来说,Java应用程序访问数据库的过程是:①装载数据库驱动程序;②通过jdbc建立数据库连接;③访问数据库,执行sql语句;④断开数据库连接。2、代码 // 查询所有用户 ...原创 2019-12-05 13:52:15 · 391 阅读 · 0 评论 -
mongodb
1.连接(1)cd /usr/local/mongodb/bin(2)mongo -p 270172.创建数据库(1)use heeiDB3.插入数据(1)db.heeiDB.insert({"name": "heei", "age": 18})4.查询(1)db.heeiDB.find()5.更新(1)db.heeiDB.update({"name" : "heei"}, {...原创 2019-11-07 17:44:02 · 437 阅读 · 1 评论 -
分库分表
https://mp.weixin.qq.com/s/Mk0Fn6n0H8ZCPV46UAh4vw 前言 正常情况下的服务演化之路 单元化 最后 前言像我这样的菜鸟,总会有各种疑问,刚开始是对 JDK API 的疑问,对 NIO 的疑问,对 JVM 的疑问,当工作几年后,对服务的可用性,可扩展性也有了新的疑问,什么疑问呢?其实是老生常谈的话题:服务...原创 2019-09-09 10:53:46 · 175 阅读 · 0 评论 -
mysql事务锁
目录乐观锁共享锁与排他锁共享锁表锁:|--表级锁(锁定整个表)|--页级锁(锁定一页)|--行级锁(锁定一行)|--共享锁(S锁,MyISAM 叫做读锁)|--排他锁(X锁,MyISAM 叫做写锁)|--悲观锁(抽象性,不真实存在这个锁)|--乐观锁(抽象性,不真实存在这个锁) 乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操...原创 2018-11-05 15:25:45 · 987 阅读 · 0 评论 -
mysql事务
事务的并发执行,容易出现的几个现象-------------------------- 1.脏读 读未提交,一个事务读取了另外一个事务改写还没有提交的数据,如果另外一个 事务在稍后的时候回滚。 2.不可重复读 一个事务进行相同条件查询连续的两次或者两次以上,每次结果都不同。 有其他事务做了up...原创 2018-11-03 17:35:17 · 266 阅读 · 0 评论 -
mysql存储过程
目录mysql存储过程 定义新的终止符 创建存储过程 查看存储过程的状态 定义加法存储过程,set赋值语句 :=java访问存储过程百万数据插入,存储过程的性能mysql函数 1.函数和存储过程相似,只是多了返回值声明. 2.创建函数 3.显式创建的函数 4.java调用函数 mysql存储过程--...原创 2018-11-03 13:41:42 · 174 阅读 · 0 评论