【mysql】
文章平均质量分 56
TGB-Earnest
一位热爱英语的人
展开
-
【mysql和clickhouse 查看当前链接进程信息】
我们有时候服务器会突然内存溢出,这时候我们会去服务器上查看,是否是Mysql查询的时候用的时间太长,我们去查看当前进程情况。原创 2023-02-24 17:44:29 · 795 阅读 · 0 评论 -
【数据分库分表-Sharding-jdbc】
随着业务的发展,我们的数据量会越来越大,这时候我们就要考虑分库分表了。三、application.properties四、编写代码entitymybatis五、测试总结稍等,我把Demo上传上来。原创 2022-12-05 15:48:36 · 241 阅读 · 0 评论 -
【Mysql专栏-Buffer Pool缓存机制的一整套运行原理】
1.从磁盘加载数据到buffer pool,会先去判断要更新的数据所在数据页是否已经被加载到了,如果已经被加载到了buffer pool中的数据页就直接使用。2.写入数据的旧值到undo log日志中,用于事务回滚。3.更新buffer pool数据页中内存数据。4.写入内存中的redo log,这个时候还没写入磁盘中,记录对那个表那条记录做了什么操作。5.提交事务,将内存的redo log写入磁盘中的redo log日志,用于崩溃恢复。原创 2022-10-07 21:47:36 · 930 阅读 · 0 评论 -
【Mysql-索引的底层结构】
a、如果此时我们查找10需要走3次,并且随着树的深度,查询效率越低b、如果我们要进行范围查找,查询大于5的数,需要进行遍历特点: 一个节点可以存储两个值高度:3 (相比平衡二叉树小了1),所以查找速度也就很快了,如果找10,只需要找2次但是,他也是存在回旋查找的问题的,比方说查找5,会返回到6。。。。。(3)B+特点:我们会发现和B树存在不同的是,叶子结点存在了链表排序这样就解决了回旋查找叶子结点只存储key,非叶子结点即存储key,也存储value所以范围查找的速度是非常的高的(1) in原创 2022-09-11 21:44:43 · 477 阅读 · 0 评论 -
【Mybatis中Oracle和Mysql批量插入的区别】
今天在开发功能的时候,在做批量插入的时候,怎么插入都报错,后来想了想自己现在在往Oracle中插入而不是MySQL,但是发现插入的时候区别还挺大的Oracle对比在mysql中直接values后面foreach即可。1、在Oracle中如果有序列,就用上面写的,没有序列直接放在foreach中即可。2、在Oracle中我上面有多个参数0,这时候我们需要给这些参数起个别名。3、在Oracle中select s.* from 中from 和s.*要远一点......原创 2022-06-28 22:51:16 · 225 阅读 · 0 评论 -
【MYSQL语句的三种写法-分数排名例子】
【需求】现在要对scores表进行排序,接下来我们用三种写法解决。【解法】(1)普通SQLSELECT Score, (SELECT COUNT(DISTINCT Score) FROM Scores WHERE Score >= s.Score) Rank FROM Scores s ORDER BY Score DESC;(2)变量SELECT Score,@rank := @rank + (@pre <> (@pre := Score)) RankFROM S原创 2022-05-29 16:15:56 · 400 阅读 · 0 评论 -
【MySQL练习】
测试数据--建表--学生表CREATE TABLE `Student`( `s_id` VARCHAR(20), `s_name` VARCHAR(20) NOT NULL DEFAULT '', `s_birth` VARCHAR(20) NOT NULL DEFAULT '', `s_sex` VARCHAR(10) NOT NULL DEFAULT '', PRIMARY KEY(`s_id`));--课程表CREATE TABLE `Course`( `c_id` VARC原创 2022-04-20 09:43:21 · 211 阅读 · 0 评论 -
【mysql中IFNULL失效原因】
项目需求最近在实现一个需求就是显示这个用户下有几个账号有多少资源项目实现SELECT agent_id, IFNULL(count(*),0) agentAccountNum FROM `agent_staff` WHERE `enable` = 1 AND delete_flag = 0 GROUP BY agent_id HAVING agent_id IN (44)但是我发现在agent_id有很多个的时候,查询出来的结果没有显示出没有的agentId的原因解释原创 2022-01-12 14:47:42 · 1172 阅读 · 0 评论 -
【You can‘t specify target table ‘student‘ for update in FROM clause】
业务需求编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。+----+------------------+| Id | Email |+----+------------------+| 1 | [email protected] || 2 | [email protected] || 3 | [email protected] |+----+------------------+Id 是这个表的主键。原创 2021-12-17 10:52:41 · 2725 阅读 · 1 评论 -
【Mysql练习 连续空余座位 笛卡尔积】
描述几个朋友来到电影院的售票处,准备预约连续空余座位。你能利用表 cinema ,帮他们写一个查询语句,获取所有空余座位,并将它们按照 seat_id 排序后返回吗?| seat_id | free ||---------|------|| 1 | 1 || 2 | 0 || 3 | 1 || 4 | 1 || 5 | 1 |对于如上样例,你的查询语句应该返回如下结果。| seat_id ||原创 2021-12-07 11:04:01 · 1945 阅读 · 1 评论 -
【Mysql-如何解决Mysql中max和count(*)联用,count(*)的最大值 】
一、问题当我们使用Mysql的时候MAX(COUNT(*)) 会报一下问题,那么如何解决呢?报错 Invalid use of group function二、场景现在有两个表,一个是Project表,另一个是Employee表。现在要求雇员最多的项目。求雇员最多的项目,我们先要将项目进行分组,然后用count(*)就可以查看每个项目中有多少个雇员的了 select count(*) from Project p1 inner join Employee e1 on p1.employe原创 2021-10-09 14:56:20 · 4288 阅读 · 1 评论 -
【mysql】图文展示Mysql锁
一、行锁和表锁的区别锁定力度: 表锁>行锁加锁效率: 表锁> 行锁冲突概率: 表锁> 行锁并发性能: 表锁<行锁二、行锁:共享锁(Shared Locks)共享锁,又称为读锁,简称S锁。共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改;加锁:select * from student where id =1 LOCK IN SHARE MODE:释放锁:事务结束三、行锁:排他锁(Exclusion Locks)排他锁又称为写锁原创 2021-07-06 23:07:06 · 524 阅读 · 61 评论 -
【mysql】mysql数据库事务图文详解
1、什么是事务事务-Transaction:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务),该业务就是一个最小的工作单元。引入事务的主要目的:事务会把数据库从一种一致状态转换为另一种一致状态,在数据库提交工作时,可以确保所有的修改都已经保存事务必须满足四个特性:ACID1.1、事务的四个特性1.1.1、 原子性(atomicity)原子性指整个数据库事务是不可分割的工作单元。一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会原创 2021-07-04 08:36:21 · 1273 阅读 · 45 评论 -
一文通读Mysql索引
(1) 索引是什么?数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。(2)索引的目的索引的目的在于提高查询效率,可以类比字典。(3)索引的类型B-Tree索引B-Tree通常意味着所有的值都是按顺序存储的,并且每一个叶子到根的距离相同B-Tree索引能够加快访问数据的速度,因为存储引擎原创 2021-07-02 22:05:54 · 488 阅读 · 58 评论 -
【Mysql】使用存储引擎进行批量插入数据
一、简介今天和我们小组进行Mysql的优化的时候,需要进行把数据往表里面进行插入,所以就使用了存储过程进行多行的插入二、使用过程表的结构(1)创建存储过程DELIMITER $$USE `mysql_test1`$$DROP PROCEDURE IF EXISTS `proc_user`$$CREATE DEFINER=`root`@`%` PROCEDURE `proc_user`()BEGIN DECLARE author_id int(10); DECLARE cat原创 2021-06-29 22:31:11 · 264 阅读 · 31 评论 -
【Mybatis】-mybatis中传递参数时,会加上单引号
一、项目描述今天对项目进行改BUG的时候,遇到了一个查找数据的时候,总是不对,于是自己就开始DEBUG,但是发现传入的参数也都没有问题啊,所以想到不是代码的问题,那就是sql的问题。于是我就跟着断点一步一步的走,发现sql语句好像也没有错,自己就查了查相关的知识。二、解决方案将#改成$符号三、相关知识(1)使用#{参数}传入会加上单引号,sql语句解析是会加上'',select * from table where name = #{name}比如...原创 2020-12-04 21:06:16 · 4675 阅读 · 4 评论 -
MySQL实现实时对数据库进行监控以及修改数据
一、项目描述今天遇到一个需求,有四个时间,分别是报名开始时间(apply_start_time)、报名结束时间(apply_end_time)、活动开始时间(activity_start_time)、活动结束时间(activity_end_time)。活动状态会根据时间的不同显示的也不同。这就需要对数据库进行实时的监控,来判断现在的时间和这四个时间的关系,然后修改活动状态。二、解决方案当然,解决方案有很多,我记得当时我们在做合作的时候用的是Timer,当时项目卡的不行不行的,所以.原创 2020-11-27 19:53:30 · 4030 阅读 · 25 评论 -
Mybatis的使用以及快速入门
一、思维导图二、基本配置(1)mybatis-config.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><!--核心配置文件--><configur原创 2020-07-29 19:41:09 · 2180 阅读 · 29 评论 -
JDBC是什么、怎么使用。
一、JDBC基础(1)JDBC是什么?Java DataBase Connectivity(Java语言连接数据库)(2)JDBC的本质是什么?JDBC是SUN公司制定的一套接口(interface)、提供了一套接口。(3)为什么SUN公司制定一套JDBC接口呢?因为每一个数据库的底层实现原理不一样、Oracle数据库有自己的原理、MySQL数据库也有自己的原理、每一个数据库产品都有自己独特的实现原理。(4) JDBC开发前的工作:先从官网下载对应的驱动jar包,然后将.原创 2020-07-24 17:51:58 · 3004 阅读 · 32 评论 -
MySQL中的LEFT JOIN 和UNIONALL的联合使用
一、基础知识(1)SQL LEFT JOIN 关键字LEFT JOIN 关键字会从左表(table_name1)那里返回所有的行,即使在右表(table_name2)中没有匹配的行语法:SELECT column_name(s)FROM table_name1LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name(2)SQL UNION 操作符UNION 操作符用于合并两个或.原创 2020-06-30 16:02:57 · 9139 阅读 · 22 评论