
数据库使用与维护
春风化作秋雨
学而思,思而学
展开
-
postgresql 通过dblink连接其他数据库表
【代码】postgresql 通过dblink连接其他数据库表。原创 2023-06-03 18:22:19 · 1526 阅读 · 0 评论 -
Postgresql创建用户与数据库并赋予权限
3、给iuser用户,创建数据库叫work_base。4.3、将work_base的所有权限赋予iuser。4、授予iuser当前work_base的全部权限。2、添加名为iuser的用户,并设置密码。1、使用postgres登录pgsql。4.1、 先退出postgre数据库。4.2、登录work_base数据库。原创 2023-05-18 16:47:56 · 11894 阅读 · 1 评论 -
修改Postgresql默认账号postgres的密码
PostgreSQL数据库默认创建管理员账号:postgres;原创 2023-05-18 16:33:48 · 17079 阅读 · 0 评论 -
pgsql官网下载地址
pgsql官网下载地址:Community DL Page原创 2023-04-26 22:56:57 · 861 阅读 · 0 评论 -
clickhouse修改数据存储目录
clickhouse默认数据目录在 /var/lib/clickhouse。停止数据库后,移走该目录再软连接回原地址;即无需修改config.xml实现对数据目录的修改。原创 2023-02-08 11:04:59 · 4722 阅读 · 0 评论 -
logstash向es同步数据报错:retrying failed action with response code: 403 ({“type“=>“cluster_block_exce
经过排查发现是服务器磁盘空间满了导致es索引为只读状态。1、清理磁盘,空出更大磁盘空间或直接扩充磁盘空间。原创 2023-02-03 10:35:20 · 2037 阅读 · 1 评论 -
elasticsearch查询异常解决方案
elasticsearch设置了密码,需要携带账号和密码。请求的url携带账号和密码。原创 2023-01-20 10:15:15 · 3123 阅读 · 0 评论 -
使用URL访问elasticsearch携带用户名和密码
账号:elastic。原创 2023-01-20 10:12:19 · 2931 阅读 · 0 评论 -
ES数据类型与数据库、excel对照
ES数据库一个excel表格文件(文件)索引 index库 database一个excel表格文件(文件)类型 _doc表 tableexcel工作文件中的表(表)json 数据的 key字段 field一个表中有多个列(列)json 数据的 value内容值这一列中的内容(某一列的内容)文档 doc记录表格中的某一行参考:Day3-17-今日总结_哔哩哔哩_bilibili原创 2022-12-07 11:08:41 · 268 阅读 · 0 评论 -
数据库使用安全策略
4、数据库存储数据类型(ex姓名、身份证号、手机号、家庭地址、车牌号等)3、数据库存储采用算法(对称、非对称、通用加密)5、数据库权限划分如何(是否遵从三全分立)6、数据库登录登陆失败处理次数限制详情。1、数据库启用主密钥进行加密。2、数据库与应用传输加密措施。...原创 2022-07-24 18:28:59 · 1416 阅读 · 0 评论 -
常见弱口令大全
password12345612345678123456789123451234qwerty1111111234567dragon123123baseballabc123footballmonkeyletmein696969shadowmaster666666qwertyuiop123321mustang1234567890michael654321pussysuperman1qaz2wsx7777777fuckyou121212000000。原创 2022-07-24 18:25:29 · 6157 阅读 · 0 评论 -
查询mysql数据库中各表记录数大小
查询mysql数据库中各表记录数大小原创 2022-06-30 15:41:33 · 606 阅读 · 0 评论 -
pgsql创建库表主键自增long类型
DROP TABLE IF EXISTS "public"."b_customer";CREATE TABLE "public"."b_customer" ( id bigserial PRIMARY KEY, "name" varchar(32));原创 2022-02-16 16:17:06 · 2168 阅读 · 0 评论 -
Spring 事务失效的7种场景
1、事务失效的7种情况 未启用spring事务管理功能 方法不是public类型的 数据源未配置事务管理器 自身调用问题 异常类型错误 异常被吞了 业务和spring事务代码必须在一个线程中 1.1、未启用spring事务管理功能@EnableTransactionManagement 注解用来启用spring事务自动管理事务的功能,这个注解千万不要忘记写了。1.2、方法不是public类型的@Transaction 可以用在转载 2022-01-13 22:44:40 · 25317 阅读 · 8 评论 -
只读事务与不使用事务的区别
1、效果不同1、不使事务:通常情况下查询其他事物已提交的数据。2、只读事务:从事务开始一直到这个事务结束,整个过程中,其他事务所提交的数据,该事务都忽略。即查询过程中,不会查询到该事物开启之后提交的数据。2、适用场景不同1、单条sql语句的查询,不必启用只读事务数据库默认支持单条SQL语句执行期间的读一致性。2、多条sql语句的查询,需要启用只读事务此种场景要求多条SQL查询出的数据必须保证整体一致性,需要启用只读事务。原因:在前面SQL查询执行结束,接下来执行后续SQL查询原创 2022-01-13 21:57:42 · 2778 阅读 · 0 评论 -
postgresql锁表查询与处理
1、事务sql语句BEGIN;update b_app set total_duration=total_duration+1 where id = 273;-- END;2、锁表语句查询查询锁表pid与锁表语句select pid, state, usename, query, query_start from pg_stat_activity where pid in ( select pid from pg_locks l join pg_class t on l.rela.原创 2021-12-31 14:10:45 · 4104 阅读 · 0 评论 -
查询postgresql数据库默认事务隔离级别
show transaction_isolation;原创 2021-12-31 10:32:07 · 982 阅读 · 0 评论 -
Redis单线程模型
1、Redis单线程模型初步理解针对每次请求调用,Redis都需经历接受命令、执行命令和返回结果三个过程。其中,执行命令阶段,因Redis是单线程处理命令,于是每一条到达redis服务端的命令不会立刻执行,而是所有命令都进入一个队列中,然后逐个被执行。多个请求端发送来的命令的执行顺序是不确定的,但可以确定的是不会有两条命令被同时执行,也就是不会产生并发问题,以上便是Redis的单线程基本模型。2、详细描述1、Redis 将每个客户端都分别关联一个指令队列;客户端的指令通过队列来按顺序处理,.原创 2021-12-27 21:48:31 · 692 阅读 · 0 评论 -
Redis 实现的功能
1、数据高速缓存功能2、支持数据持久化3、支持事务4、支持消息队列5、实现分布式锁原创 2021-12-27 20:59:37 · 572 阅读 · 0 评论 -
Redis 使用场景
Redis 是一个使用 C 语言开发的高速缓存数据库。Redis 使用场景:1、缓存用户访问会话信息。2、缓存文章详情信息,快速响应用户请求,提升客户体验。3、缓存热数据(使用频次很高的数据),比如近期热帖。4、记录帖子点赞数、点击数、评论数。5、做数据标记或临时记录数据。比如登陆验证码,自增唯一流水号等。6、实现分布式锁。...原创 2021-12-27 20:56:31 · 109 阅读 · 0 评论 -
Mysql数据库乐观锁和悲观锁
1、乐观锁每次读去数据的时,都认为别人不会修改,所以不会上锁;但是,在提交更新时,会判断一下在此期间别人是否更新过这个数据。2、悲观锁每次读取数据时都认为别人会修改,所以,每次读取数据时都会上锁。如此,别人读取此数据,就会被阻止,直到这个锁被释放。数据库事务支持实现悲观锁,隔离级别是读已提交。注意:数据库乐观锁,需开发者自己实现。实现方式:在表里面添加一个 version 字段,每次修改成功,其值自动加 1,如此每次修改时先对比一下,所拥有的 version 和数据库现在的 version原创 2021-12-27 20:47:44 · 306 阅读 · 0 评论 -
Mysql 字段类型 char 和 varchar 的区别
1、char(n)固定长度字符串类型,比如定义字段类型 char(10),当输入"jack"三个字符的时,它所占的空间还是 10 个字节,其他 6个是空字节。优点:效率高。缺点:占用空间。适用场景:数据长度是固定值,比如密码的 md5 值,长度固定,适合使用char 类型定义字段。2、varchar(n)存储数据长度可变;存储的值长度,是数据占用的字节长度加上一个用来记录其长度的字节的长度。综上所述,两者的选用要看具体场景,从空间上考虑 varcahr 比较合适;从效率...原创 2021-12-26 19:28:03 · 361 阅读 · 0 评论 -
MySQL 的行锁和表锁
InnoDB 支持表锁和行锁,默认为行锁;MyISAM 只支持表锁。表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低。行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高。...原创 2021-12-26 18:34:35 · 446 阅读 · 0 评论 -
MySQL 常用引擎
1、InnoDB 引擎mysql 5.1 版本后默认的使用的数据库引擎,它提供了对数据库 acid 事务的支持,并且提供了行级锁和外键的约束,其设计目标是处理大数据容量的数据库系统。MySQL 运行时,InnoDB 会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎是不支持全文搜索,同时启动也比较的慢,它是不会保存表的行数的,所以当进行 select count(*) from table 指令的时候,需要进行扫描全表。由于锁的粒度小,写操作是不会锁定全表的,所以在并发度较高的场景下使用会提升效率原创 2021-12-25 23:22:07 · 638 阅读 · 0 评论 -
数据库的事务隔离
以MySQL 为例,数据库的事务隔离是在 MySQL. ini 配置文件里添加的,在文件的最后添加:transaction-isolation = REPEATABLE-READ可用的配置值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE。1、READ-UNCOMMITTED:未提交读最低隔离级别、事务未提交前,就可被其他事务读取(会出现幻读、脏读、不可重复读)。2、READ-COMMITTED:提交读一.原创 2021-12-25 23:17:38 · 1096 阅读 · 0 评论 -
MySQL 验证索引是否生效
使用 explain 可以查看 SQL 是如何执行查询语句的,从而分析你的索引是否命中,耗时多少;耗时高代表没有命中索引。explain 使用示例:explain select * from studentwhere classId = 110原创 2021-12-25 23:14:42 · 615 阅读 · 0 评论 -
MySQL 索引原理
索引,是为满足某种特定查找算法的数据结构,这些数据结构会以某种方式指向数据,从而实现高效查找数据。具体来说 MySQL 中的索引,不同的数据引擎实现有所不同,但目前主流的数据库引擎的索引都是 B+ 树实现的,B+ 树的搜索效率,可以到达二分法的性能,找到数据区域之后就找到了完整的数据结构了,所有索引的性能也是更好的。...原创 2021-12-25 23:09:48 · 393 阅读 · 0 评论 -
MySQL 的内连接、左连接、右连接区别
1、内连接:inner join(可省略,使用逗号 , 代替)内连接是把匹配的关联数据显示出来。2、左连接:left join左连接是左边的表全部显示出来。注意:左连接,如果最右边表在 on之后的where条件中添加查询条件,会自动变成内连接。3、右连接:right join右连接是右边的表全部显示出来。注意:右连接,如果最左边表在 on之后的where条件中添加查询条件,会自动变成内连接。...原创 2021-12-25 23:07:53 · 1143 阅读 · 0 评论 -
事务的四个特性
1、Atomicity(原子性)原子性,可理解为讲义气,“与荣俱荣,与损俱损”。一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。即,事务不可分割、不可约简。2、Consistency(一致性)原子性,可理解为讲义气,“口径一致,善始善终”。在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预原创 2021-12-25 22:59:44 · 494 阅读 · 0 评论 -
MyBatis 自定义插件
1、自定义插件实现原理MyBatis 自定义插件针对 MyBatis 四大对象(Executor、StatementHandler、ParameterHandler、ResultSetHandler)进行拦截:Executor:拦截内部执行器,它负责调用 StatementHandler 操作数据库,并把结果集通过 ResultSetHandler 进行自动映射,另外它还处理了二级缓存的操作; StatementHandler:拦截 SQL 语法构建的处理,它是 MyBatis 直接和数据库执行原创 2021-12-24 23:33:03 · 2181 阅读 · 0 评论 -
MyBatis 分页插件的实现原理
分页插件基本原理:使用 MyBatis 提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的 SQL,然后重写 SQL,根据 dialect 方言,添加对应的物理分页语句和物理分页参数。原创 2021-12-24 23:30:36 · 2939 阅读 · 1 评论 -
MyBatis 执行器 Executor
MyBatis 有三种基本的Executor执行器:1、SimpleExecutor每执行一次 update 或 select 就开启一个 Statement 对象,用完立刻关闭 Statement 对象;2、ReuseExecutor执行 update 或 select,以 SQL 作为 key 查找 Statement 对象,存在就使用,不存在就创建,用完后不关闭 Statement 对象,而是放置于 Map 内供下一次使用。简言之,就是重复使用 Statement 对象;3、Bat原创 2021-12-24 23:28:56 · 574 阅读 · 0 评论 -
MyBatis 和 hibernate 的区别
1、灵活性MyBatis 更加灵活,自己可以写 SQL 语句,使用起来比较方便。2、可移植性MyBatis 有很多自己写的 SQL,因为每个数据库的 SQL 可以不相同,所以可移植性比较差。3、学习和使用门槛MyBatis 入门比较简单,使用门槛也更低。4、二级缓存hibernate 拥有更好的二级缓存,它的二级缓存可以自行更换为第三方的二级缓存。...原创 2021-12-24 23:27:16 · 270 阅读 · 0 评论 -
MyBatis 一级缓存与二级缓存
1、一级缓存基于 PerpetualCache 的 HashMap 本地缓存,它的声明周期是和 SQLSession 一致的,有多个 SQLSession 或者分布式的环境中数据库操作,可能会出现脏数据。当 Session flush 或 close 之后,该 Session 中的所有 Cache 就将清空,默认一级缓存是开启的。2、二级缓存也是基于 PerpetualCache 的 HashMap 本地缓存,不同在于其存储作用域为 Mapper 级别的,如果多个SQLSession之间需要共享原创 2021-12-24 23:25:44 · 330 阅读 · 0 评论 -
MyBatis 延迟加载原理
1、延迟加载配置MyBatis 支持延迟加载,需要设置 lazyLoadingEnabled = true2、延迟加载的原理是调用时触发加载,而非初始化时就加载信息。举例:调用 a. getB(). getName(),发现 a. getB() 的值为 null,此时会单独触发事件,先保存好的关联 B 对象的 SQL,查询出来 B,然后再调用 a. setB(b),于是再调用 a. getB(). getName() 就有值了,此为延迟加载的基本原理。...原创 2021-12-24 23:23:43 · 2540 阅读 · 0 评论 -
MyBatis 逻辑分页和物理分页的区别
1、逻辑分页是一次性从数据库查询很多数据,然后再在结果中检索分页的数据。弊端:需要消耗大量的内存、有内存溢出的风险、对数据库压力较大。2、物理分页是从数据库查询指定条数的数据。好处:弥补了一次性全部查出的所有数据的缺点,比如需占用大量内存,数据库查询压力较大等问题。...原创 2021-12-24 23:16:47 · 2627 阅读 · 0 评论 -
MyBatis 分页方式
1、逻辑分页使用 MyBatis 自带RowBounds 进行分页,它是一次性查询很多数据,然后在数据中再进行检索。2、物理分页开发人员手写 SQL 分页或使用分页插件 PageHelper,去数据库查询指定条数的分页数据的形式。...原创 2021-12-22 22:58:14 · 299 阅读 · 0 评论 -
MyBatis 中 #{}和 ${}的区别
1、两者区别1、#{}是会参与预编译处理。2、${}仅仅是字符替换。 2、推荐使用#{}原因:在使用#{}时,MyBatis 会将 SQL 中的#{}替换成“?”,配合 PreparedStatement 的 set 方法赋值,这样可以有效的防止 SQL 注入,保证程序的运行安全。否则,需要对参数进行合理的逻辑校验,既增加安全风险,又增加开发工作量。3、${}使用场景如果可变的是表字段名称,则需要使用${},当然需要配合必要的参数校验。...原创 2021-12-22 22:55:37 · 475 阅读 · 0 评论 -
Spring中七种事务传播行为
事务的传播行为,默认值为 Propagation.REQUIRED。可手动指定事务传播行为,如下:1、Propagation.REQUIRED1)若当前存在事务,则加入该事务。2)若当前不存在事务,则创建一个新的事务。2、Propagation.SUPPORTS1)当前存在事务,则加入该事务。2)若当前不存在事务,则以非事务的方式继续运行。3、Propagation.MANDATORY1)当前存在事务,则加入该事务。2)若当前不存在事务,则抛出异常。4、Propaga原创 2021-12-22 22:29:29 · 785 阅读 · 0 评论 -
Spring 事务隔离
1、Spring事务五大隔离级别默认是ISOLATION_DEFAULT(使用数据库的设置),其他四个隔离级别和数据库的隔离级别一致:1、ISOLATION_DEFAULT使用数据库设置的隔离级别,数据库设置的是什么就用什么。2、ISOLATIONREADUNCOMMITTED读未提交,最低隔离级别。事务未提交前,数据就可被其他事务读取(会出现幻读、脏读、不可重复读)。3、ISOLATIONREADCOMMITTED读已提交,一个事务提交后,才能被其他事务读取到(会造成幻读、..原创 2021-12-19 14:48:48 · 4360 阅读 · 0 评论