mysql
文章平均质量分 65
mysql知识
想养一只萨摩耶~
请在合适的地方掉头并重新规划路线
展开
-
Group By 和having的用法
对于一些小白同学来说,mysql中的一些聚合函数、分组或者having的一些用法总是感觉理解起来稍微吃力,今天对其做一个整理,并举一些平时开发中常见的例子来说明。1)如果要用到group by分组,那么select字句后面的列名必须为分组列或者列函数(如上根据课程分组后,select 字句中为课程和课程的函数列)SELECT course ,Max(score) AS 最高分数,`name` FROM `t_user` t GROUP BY course。原创 2022-09-27 14:53:51 · 34209 阅读 · 4 评论 -
mysql排名函数应用row_number()、rank()、dense_rank()
我们通常需要在sql中去处理一些排名的问题,因为将数据全部查询出来在内存中去出来排名这样很耗费内存并且严重影响服务器运行速度。近期在开发中就遇到了类似的问题,所以以此来记录下。函数名称作用易错点场景按照顺序依次编号依次编号返回列表时,增加序号rank()按照顺序编号、有间隔有间隔给字段增加排名,排名相同时下个排名自动跳过按照顺序编号、无间隔无间隔给字段增加排名,排名相同时下个排名不会跳过。原创 2022-09-23 13:16:23 · 566 阅读 · 0 评论 -
mysql排名函数应用row_number()、rank()、dense_rank()
我们通常需要在sql中去处理一些排名的问题,因为将数据全部查询出来在内存中去出来排名这样很耗费内存并且严重影响服务器运行速度。近期在开发中就遇到了类似的问题,所以以此来记录下。函数名称作用易错点场景按照顺序依次编号依次编号返回列表时,增加序号rank()按照顺序编号、有间隔有间隔给字段增加排名,排名相同时下个排名自动跳过按照顺序编号、无间隔无间隔给字段增加排名,排名相同时下个排名不会跳过。原创 2022-09-23 13:16:23 · 566 阅读 · 0 评论 -
mybatis筛选时间
大家有时候在写xml文件的时候,可能会遇到筛选时间的,在某些情况下,我比较喜欢将所有数据查出来,然后在内存中去进行筛选。比如说:筛序出今天的日期可以直接在xml文件中表示,不用在内存中再去进行筛选。原创 2022-09-21 14:48:40 · 1497 阅读 · 0 评论 -
jdbc连接mysql8.0驱动
因为有时候要写demo需要连接数据库,但是连接的url好长,所以这里就直接记录一下,方便下次粘贴。原创 2022-07-15 16:52:36 · 1478 阅读 · 0 评论 -
如何保证数据库和redis的双写一致性
1 Mysql单点情况对于缓存和数据库一致性的问题,有一个很经典的解决方案就是Cache Aside Pattern1 命中:程序先从缓存中读取数据,如果命中,则直接返回2 失效:程序先从缓存中读取数据,如果没有命中,则从数据库中读取,成功之后放到缓存3 更新:程序先更新数据库,在删除缓存但是对于更新的这个操作,有很多种情况,哪一种情况更合适呢?我们以此来分析一下:1 先更新缓存,再更新数据库2 先更新数据库,再更新缓存3 先删除缓存,再更新数据库4 先更新数据库,再原创 2022-03-31 14:30:15 · 2874 阅读 · 5 评论 -
Sharding-JDBC-分库分表
1 分库分表有两种方式:垂直切分和水平切分垂直切分(针对结构发生变化):垂直分表和垂直分库水平切分(针对数据量发生变化):水平分表和水平分库垂直分表:操作数据库中的某张表,把这张表中一部分字段数据存到一张新表里,再把这张表另一部分字段数据存到另外一张表里。垂直分库:把单一数据库按照业务进行划分,专库专表水平分库:在多个数据库中创建多个相同结构的表水平分表:在一个数据库中创建多个相同结构的表分库分表应用和问题:1应用:1)在数据库设计时考虑垂直分库和垂直分表2)随着数据原创 2022-03-14 09:24:16 · 2453 阅读 · 0 评论 -
Mysql的隔离级别
1 概述mysql定义了4种隔离级别,读未提交,读已提交,可重复读,可串行化,而mysql的默认隔离级别为可重复读。2 4种隔离级别读未提交(READ UNCOMMITTED)在这个隔离级别,所有事务都可以看到未提交事务的执行结果。在这种隔离级别上,可能会产生很多问题。所以这种隔离级别很少用于实际应用,而且它的性能也没有比其他性能好很多,而别的级别还有其他的优点。读取未提交数据,也被称为“脏读”。读已提交(READ COMMITTED)读已提交这种隔离级别是大多数数据...原创 2022-03-07 09:22:25 · 1495 阅读 · 0 评论 -
mysql事务及其实现原理
1 概述mysql事务的原子性(Atomicity):语句要么全执行,要么全不执行,是事务最核心的特性,事务本身就是以原子性来定义的。实现主要基于undo log日志。持久性(Durability):保证事务提交后不会因为宕机等原因导致数据丢失。实现主要基于redo log。隔离性(Isolation):保证事务执行尽可能不受其他事务影响。InnoDB默认的隔离级别是可重复读一致性(Consistency):事务追求的最终目标,一致性的实现即需要数据库层面的保障,也要应用层面的保障。原创 2022-03-01 21:00:10 · 1085 阅读 · 0 评论 -
mysql--索引--回表
1 索引1.1 聚簇索引聚簇索引:数据和索引一起的叫做聚簇索引非聚簇索引(二级索引/辅助索引):数据和索引分开存储的叫做聚簇索引myisam中只有非聚簇索引,innodb中既支持聚簇索引也支持非聚簇索引注意:innodb存储引擎中,数据在进行插入时,数据必须和某一个索引列绑定在一起,如果表中有主键,那么和主键绑定,如果没有主键,那么和唯一键绑定,如果没有唯一键,那么选择一个6字节的rowid进行绑定。eg:id,name,age,gender四个列,其中id是主键,name是普通索引原创 2022-02-22 20:31:59 · 5741 阅读 · 1 评论 -
mysql为什么要使用B+树作为索引
1 概述大家可能在面试的时候都会被问到这样一个问题:mysql的索引结构是什么?这个时候了解的都知道是B+树,那么为什么会采用B+树作为它的索引结构呢?由图可以知道:索引的存在时为了加快数据访问提高查询效率的,而数据存储在磁盘中,但从磁盘读取数据会产生大量的IO操作,读取效率是非常低的。所以在读取的时候要减少io量和减少io次数来提高读取效率。...原创 2022-02-21 21:14:50 · 6445 阅读 · 4 评论 -
mysqlbinlog如何恢复误删的数据
1 产生背景在我们平时的开发过程中,不可避免的会有遇到过手快误删数据的情况。那么误删了数据如何恢复呢?这个就要用到我们的mysql的binlog日志来讲数据进行恢复了。于是我们就基于这个环境背景来模拟下误删了数据库如何恢复吧说明:在linux环境下进行演示2 演示流程 2.1 配置开启binlog(如已开启可忽而)2.1.1 在我们的Linux服务器上连接上我们的mysql数据库(mysql -h主机名称 -u用户 -p密码)2.1.2连接上我们的mysql之后,我们先执行命..原创 2021-12-04 17:13:10 · 6053 阅读 · 2 评论 -
mysql中如何根据表名找到库名
SELECT table_schema FROM information_schema.TABLES WHERE table_name = '表名';原创 2022-01-13 20:44:54 · 1698 阅读 · 0 评论 -
Mysql中tinyint(1)与tinyint(4)的区别
1varchar(M)和数值类型tinyint(M)的区别 字符串类型:varchar(M)而言,M是字段中可以存储的最大字符串,也就是说字段长度。根据设置,当你插入的数值超过字段设置的长度时,很有可能会收到错误提示,如果没有收到提示,插入的数据也有可能被自动的截断以适应该字段的预定义长度。所有像varchar(5)表示其存储的字符串长度不能超过5。数值列类型:其长度修饰符表示最大宽度,与该字段物理存储没有任何关系,也就是说,tinyint(1)和tinyint(4...原创 2022-01-23 21:39:16 · 3323 阅读 · 0 评论 -
Mysql中int和integer有什么区别
平时在我们使用数据库时,可以发现整形的存储类型包括int和integer这两种,那么它们中间有什么区别呢?从图中可以看出,int和integr并没有什么区别,而且在数据库表结构设计时,无论是int还是integer都可以存储Null。...原创 2022-01-02 20:22:52 · 10197 阅读 · 0 评论 -
索引是否也能提高UPDATE,DELETE,INSERT速度
平时在sql优化过程中,我们都会给字段建立适当的索引以此来提升查询速度。那么建立索引既然能够提升查询速度,为什么不将所有的字段全部都建立索引呢?因为我们mysql数据库对应的不仅仅只有select,还有update,insert,delete.对于select: 适当的索引的确能够提升查询速度对于insert: 并不会用到索引,还会增加维护索引的时间对于update: 如果更新索引列,不会提高,少量更新非索引列,会有适当的提高,并且更新索引列,索引还需要重新维护对于delete: 如果删原创 2022-01-02 20:33:51 · 4964 阅读 · 1 评论