![](https://img-blog.csdnimg.cn/3426f04621ea4833a50d9f1e4f2f74a9.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 70
MySQL
书启秋枫
手痒了,写代码!
展开
-
MySQL数据库和SQL语句
在前期学习的过程中,对于数据的保存方式有。原创 2022-11-28 21:10:08 · 2338 阅读 · 0 评论 -
01_MySQL索引简介
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从上往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要a----z,如果我想找到Java开头的单词呢?或者Oracle开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成?你可以简单理解为“排好序的快速查找数据结构”。原创 2023-06-09 08:40:11 · 1524 阅读 · 0 评论 -
02_MySQL的索引结构
一颗b树,浅蓝色的块我们称之为一个磁盘块(innodb默认16kb一个磁盘块),可以看到每个磁盘块包含几个数据项(深蓝色所示)、指向关键字具体信息的指针(红色)和指向其他磁盘块的指针(黄色所示)如磁盘块1包含数据项17和35,包含指针P1、P2、P3,P1表示小于17的磁盘块,P2表示在17和35之间的磁盘块,P3表示大于35的磁盘块。原创 2023-06-09 09:23:03 · 819 阅读 · 0 评论 -
03_MySQL索引分类
03_MySQL索引分类。原创 2023-04-21 21:01:14 · 662 阅读 · 0 评论 -
04_索引的使用场景
Why:提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度。单键/组合索引的选择问题, 组合索引性价比更高。查询中与其它表关联的字段,外键关系建立索引。Where条件里用不到的字段不创建索引。频繁作为查询条件的字段应该创建索引。经常增删改的表或者字段。过滤性不好的不适合建索引。查询中统计或者分组字段。有大量重复数据的列上。原创 2023-06-09 09:24:38 · 1546 阅读 · 0 评论 -
05_MySQL索引优化
四种:1.主键 2.单值 3.唯一 4.复合mysql5.6以后优化器做了很多改进,执行时会自动进行大量的优化,很多现象需要在5.5才能演示成功。使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的表的读取顺序那些索引可以使用数据读取操作的操作类型那些索引被实际使用表之间的引用每张表有多少行被物理查询select查询的序列号,表示查询中执行select子句或操作表的顺序id为NULL最后执行。原创 2023-06-09 11:02:01 · 1339 阅读 · 0 评论 -
06_ MySQL优化实战
说明:索引的长度与区分度是一对矛盾体,一般对字符串类型数据,长度为 20 的索引,区分度会高达 90%以上,可以使用 count(distinct left(列名,索引长度)) / count(*) 的区分度来确定。强制】在 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度。原创 2023-06-09 11:09:04 · 1507 阅读 · 0 评论 -
Docker 部署 MySQL 一主多从
【代码】Docker 部署 MySQL 一主多从。原创 2023-04-22 18:53:02 · 1915 阅读 · 1 评论 -
mysql-installer-community-8.0.22.0安装教程
这里出现10个选项是正确的,如果不是,说明上一步骤有问题。访问网址:MySQL官网。原创 2023-01-27 14:29:24 · 2411 阅读 · 0 评论 -
Mybatis—动态SQL
【代码】动态SQL。原创 2023-02-03 17:01:19 · 1842 阅读 · 8 评论 -
MySQL【left join、right join、inner join】详细用法
【代码】MySQL【left join、right join、inner join】详细用法。原创 2023-02-02 19:39:29 · 2179 阅读 · 0 评论 -
MySQL常见七种通用的Join查询练习题
【代码】MySQL常见七种通用的Join查询练习题。原创 2023-04-21 18:54:37 · 957 阅读 · 0 评论 -
Mybatis对象关联数据库表【一对多关联AND一对一关联】
Customer类下创建一个List集合OrderBean类。建议分步查询,节约性能。原创 2023-02-02 19:18:15 · 486 阅读 · 0 评论 -
MySQL表设计和多表操作
上述的案例中,我们确实是希望员工表和部门表产生对应的关系,可是通过对上述表单的查询我们可以看到,当前是以部门的id主键作为关联联系时,产生了一个不存在的部门编号,代码虽然减少了冗余,但是却存在了出错的风险,而为了减少这种风险的产生,我们需要通过。我们在创建第三张关系表时,表中的每一列,都是在引用其他表中的列,这时我们需要对第三张表中的列进行相应的约束,当前第三张表中的列,由于都是引用其他表中的列,我们把第三张表中的这些列称为引用其他的。指的是通过操作主表的数据,从而影响到从表中的数据。原创 2022-11-30 10:37:59 · 1523 阅读 · 0 评论 -
Mybatis中使用${}和使用#{}
Mybatis在对#{}进行预处理时,会把#{}处理成占位符,实际执行的时候才会把参数替换进去,相当于jdbc的PreparedStatement。上面这个配置实际打印出来的sql为这样有效的预防了sql注入。上面这个配置实际打印出来的sql为${} 则只是简单的字符串替换,在动态解析阶段,该 sql 语句会直接将变量值替换进去,这样就有可能会发生sql注入的风险。原创 2022-11-21 16:55:34 · 2011 阅读 · 0 评论 -
ResultMap详解(处理字段名和属性名不一致)
Mybatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。原创 2022-11-21 16:36:32 · 1387 阅读 · 0 评论 -
Redis常见面试题总结
尽量使用 Redis 的散列表,把相关的信息放到散列表里面存储,而不是把每个字段单独存储,这样可以有效的减少内存使用。:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。最简单粗暴的方法如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们就把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。关于 Redis 的性能,官方网站也有,普通笔记本轻松处理每秒几十万的请求。原创 2022-11-28 21:31:51 · 186 阅读 · 0 评论 -
MySQL常见面试题总结
数据库的乐观锁需要自己实现,在表里面添加一个 version 字段,每次修改成功值加 1,这样每次修改的时候先对比一下,自己拥有的 version 和数据库现在的 version 是否一致,如果不一致就不修改,这样就实现了乐观锁。具体来说 MySQL 中的索引,不同的数据引擎实现有所不同,但目前主流的数据库引擎的索引都是 B+ 树实现的,B+ 树的搜索效率,可以到达二分法的性能,找到数据区域之后就找到了完整的数据结构了,所有索引的性能也是更好的。左连接是左边的表全部显示出来,右边的表显示出符合条件的数据;原创 2022-11-28 21:29:45 · 253 阅读 · 0 评论 -
DBCP、c3p0、Druid三大连接池区别
有些数据库连接的时候有超时限制 (mysql连接在8小时后断开),或者由于网络中断等原因,连接池的连接会出现失效的情况,这时候设置一个testWhileIdle参数为true, 可以保证连接池内部定时检测连接的可用性,不可用的连接会被抛弃或者重建,最大情况的保证从连接池中得到的Connection对象是可用的。为了发挥数据库连接池的作用,在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。出了连接数据库,还要提供一个获得数据源的方法和一个获取连接的方法;转载 2022-12-02 17:57:33 · 2934 阅读 · 0 评论 -
Public Key Retrieval is not allowed(不允许公钥检索)【解决办法】
问题报错:使用 MySQL8.0 连接数据库如果报错:Public Key Retrieval is not allowed 解决办法:在连接数据库的配置文件中加上&allowPublicKeyRetrieval=true语句,如下:原创 2022-08-10 09:40:36 · 8992 阅读 · 7 评论 -
Docker容器mysql创建表报错:Table ‘mybatis_plus.USER‘ doesn‘t exist 问题解决
【代码】Docker容器mysql创建表报错:Table 'mybatis_plus.USER' doesn't exist 问题解决。原创 2023-03-24 14:47:47 · 572 阅读 · 0 评论 -
Mybatis出现Parameter ‘XXX‘ not found. Available parameters are [0, 1, param1, param2]错误解决方法
在没有@Param注解指定参数名时,底层使用的是一个HashMap集合,把每个参数以key为(arg0…paramN,value)为实际参数的形式,依次存入到HashMap集合中。当使用多个单参数没有使用@Param注解进行标注的方式进行传值时,就会出现参数xxx找不到的问题。如下图这种没有加注解的。例如: {arg0=张三,param1=1000,arg1=lisi,param2=lisi…在进行执行的时候会用mapper文件中sql的占位参数名去集合中获取,获取不到就会报这个异常。原创 2022-12-01 18:39:00 · 5285 阅读 · 0 评论