![](https://img-blog.csdnimg.cn/9f111a8a6e374c448a6f61c50cca5284.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
mySql、postgreSql高级以及sql优化
文章平均质量分 59
mysql高级以及sql优化
杵意
王锡豪,code是爱好,有兴趣的可以关注,定不负代码不负卿。java开发工程师
展开
-
PostgreSQL 远程登录postgres用户不需要密码?免密登录权限设置
是postgre安装的时候默认的超级管理用户postgres他的默认密码为postgres,但是将这个密码改之后还是有问题。后来发现不用密码也能登录,那一定就是免密登录的问题了。原因配置远程IP时,IP 地址对应的 method 设置成了 trust。今天安全测试反馈,pgsql有弱口令问题,于是上去改了pgsql的密码,结果问题还没解决。由于我的postgre是多实例的,所以和大家配置文件的路径可能不同,配置文件为。为信任,设置为trust就可以免密,在这里我们可以设置为。设置完要重启数据库才能生效。原创 2024-05-30 18:05:59 · 958 阅读 · 0 评论 -
druid连接池参数对数据库的影响
可以通过执行此查询来检测连接是否仍然有效,如果连接无效,则将其从连接池中移除并创建一个新的连接。如果设置为 true,则在获取连接时会执行连接检测,以确保获取到的连接是有效的;使用 Druid 连接池时,你可以通过配置一系列参数来调整连接池的行为,这些参数可以对数据库的性能和应用程序的行为产生影响。testWhileIdle(空闲连接检测):指定连接池在空闲连接上执行空闲连接检测的频率。如果应用程序的数据库连接需求是变化的,可以设置一个适当的最小空闲连接数,以确保连接池中始终有足够的连接可供使用。原创 2024-04-09 14:59:59 · 371 阅读 · 0 评论 -
分区表、PostgreSql做分区表、建立分区索引、按照年月分区、删除分区
分区表是一种将表按照特定规则分割成多个子表的技术。这些子表被称为分区,每个分区可以存储特定范围或特定条件下的数据。分区表可以基于列值、时间范围、列表等条件进行分区。使用分区表可以提高查询性能,简化数据管理,并提高数据库的可维护性。原创 2024-04-01 17:27:47 · 844 阅读 · 0 评论 -
索引:索引知识重复习,什么是索引、索引的类型、建立索引及【最左匹配原则】、Explain查看sql的执行计划
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。简单说,把数据库比作一本书,索引就是书中的目录,索引就是用来快速查找数据库中的内容的。通过创建唯一索引,来保证数据库表中的每一行数据的唯一性。• 可以加快数据的检索速度。• 可以保证表数据的完整性与准确性索引需要占用物理空间。原创 2023-04-03 17:08:53 · 1227 阅读 · 0 评论 -
数据量过大,使用saveBatch保存数据太慢如何解决:
如果没有特别要求,可以设置全局配置来保障,实际中使用批量保存的其实就特定表,也不是特别建议使用全局的配置,把可能的字段添加忽略就行了。. mybatis-plus使用saveBatch的时候,需要保证字段不为null,如果可能为null的话,在可以在注解上增加忽略。. 如果已经是一批一个insert以后,还是慢,则需要修改数据库链接,需要在数据库链接后面增加。如果需要查看具体原因,可参考,这位小伙伴测试的非常详细,我就不过多赘述了。修改完毕后,insert应该是一批一个insert,而不是一堆。原创 2023-02-03 10:00:57 · 4441 阅读 · 0 评论 -
MySQL ifnull()函数
MySQL 函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数。 否则,函数返回第二个参数。两个参数可以是文字值或表达式。以下说明了IFNULL函数的语法:如果expression_1不为NULL,则IFNULL函数返回expression_1; 否则返回expression_2的结果。IFNULL函数根据使用的上下文返回字符串或数字。如果要返回基于TRUE或FALSE条件的值,而不是NULL,则应使用IF函数。使用以下查询获取所有联系人的姓名和电话:...原创 2022-06-12 14:13:56 · 40787 阅读 · 0 评论 -
docker搭建mysql的集群(双主双从)
文章目录docker搭建mysql的集群(双主双从)主机创建用户并授权:链接Master(主)和Slave(从)链接两个主机docker搭建mysql的集群(双主双从)首先在docker上拉取mysql的镜像,以及运行起来四个mysql,不会的话大家可以去看我之前搭建一主一从的文章,在这里细节就不多演示了,直接从4台配置开始:我这里直接开过了:master,master01,slave,slave01四台进入master容器内部:docker exec -it mysql-master /bi原创 2022-04-30 12:48:45 · 4477 阅读 · 6 评论 -
Mysql百万数据优化实战
首先看下数据表在数据表中有四百万的数据量首先看下不使用缓存查询的时间需要4毫秒多然后我们加上索引这时候可以看出时间是0.009ms,不知道快了多少倍,这就是索引的作用索引优化方案一:最左前缀法则如果建立的是复合索引,查询索引的顺序要按照建立时的顺序,即从左到右,如a——>b——>c(和B+树的数据结构有关)使用mysql自带的索引分析数据explain分析工具如果把桥中给干掉(中间的索引不使用查询)这时候发现后面的索引也没有用到,破坏了最左前缀法则如果没有了原创 2022-04-23 10:32:59 · 497 阅读 · 0 评论 -
索引查询数据流程
MyISAMMyISAM用的是非聚集索引方式,即数据和索引落在不同的两个文件上(MYD是数据文件 , MYI是索引文件)。MyISAM在建表时以主键作为KEY来建立主索引B+树,树的叶子节点存的是对应数据的物理地址。我们拿到这个物理地址后,就可以到MyISAM数据文件中直接定位到具体的数据记录了。当我们为某个字段添加索引时,我们同样会生成对应字段的索引树,该字段的索引树的叶子节点同样是记录了对应数据的物理地址,然后也是拿着这个物理地址去数据文件里定位到具体的数据记录。InnoDBInnoDB使用原创 2022-04-22 08:17:37 · 2258 阅读 · 0 评论 -
Mysql索引底层数据结构,索引失效的原因(符合最左匹配原则)
这里面的"1212",就相当于a,如果没有遵循最左前缀法则,b就是无序的,想要在无序中找到b里面的记录,是用不到索引的,只能进行全表扫描。可以看出,B树一个节点可以存多个值,解决了二叉树的高度的问题,树越矮查找速度就越快,但是B树还有回旋查找的问题。可以看出来:a值是有顺序的,当a相同的时候b值才有顺序,同理字母也是按照顺序排序A-Z。哈希值是无序的,不可以范围查找,排序的话,也不能使用哈希值进行排序,而且会有哈希冲突。即使确定了大于1的数据,2,但是对应的值也是无需的。原创 2022-04-21 08:40:01 · 332 阅读 · 0 评论 -
【MVCC多版本并发控制】MVCC 机制的原理及实现,什么是MVCC,多版本并发控制
什么是 MVCCMVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。如此一来不同的事务在并发过程中,SELECT 操作可以不加锁而是通过 MVCC 机制读取指定的版本历史记录,并通过一些手段保证保证读取的记录值符合事务所处的隔离级别,从而解决并发场景下的读写冲突。先来了解一下什么是版本链:什么是原创 2022-04-19 08:19:18 · 1834 阅读 · 5 评论 -
Mysq事务的特性以及ACID的实现原理
Mysql的三层架构:因为MyISAM是支持事务的,所以事务使用innodb引擎。事务的四个特性:原子性、一致性、隔离性、持久性。接下来我们一个一个来看:原子性是指一个事务是一个不可分割的单位,是一个最小的操作单元,那么这些操作呢?要么全部成功,要么全不成功。如果事务中一个SQL语句执行失败了,那么已经执行的SQL语句需要进行回滚,回滚到执行之前的状态。它的实现原理主要是基于UNdolog。它是一个日志。innodb引擎提供了两种事务的日志,一个是redolog,一个是undolog这个undol原创 2022-04-17 13:18:29 · 282 阅读 · 0 评论