liuzhilong_62
码龄5年
  • 338,824
    被访问
  • 265
    原创
  • 214,385
    排名
  • 38
    粉丝
关注
提问 私信

个人简介:好好学习,天天向上

  • 加入CSDN时间: 2017-10-18
博客简介:

liuzhilong的博客

博客描述:
最可怕的莫过于止步不前
查看详细资料
  • 4
    领奖
    总分 586 当月 25
个人成就
  • 获得58次点赞
  • 内容获得40次评论
  • 获得234次收藏
创作历程
  • 28篇
    2021年
  • 77篇
    2020年
  • 44篇
    2019年
  • 111篇
    2018年
  • 6篇
    2017年
成就勋章
TA的专栏
  • MYSQL
    68篇
  • REDIS
    8篇
  • MONGO
    5篇
  • PG
    5篇
  • OCEANBASE
    2篇
  • ORACLE
    171篇
  • SEQUOIADB
    1篇
  • CLOUD
    1篇
  • OGG
    9篇
  • OS
    6篇
  • PYTHON
    1篇
  • DM
    1篇
兴趣领域 设置
  • 数据库管理
    dba
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

PG流复制详解

什么是PG流复制?Streaming Replication是pg9.0开始提供的传递WAL日志的方式,只要primary库一产生日志,就会立马传递到standby库。在pg9.0之前,pg只能一个个传送wal日志(log shipping),备库至少比主库落后一个wal日志pg流复制进程wal sender:wal sender存在于主库。wal sender进程将主库最新LSN到备库最新的LSN之间的wal 传递给备库wal receiver:wal receiver存在于备库。wal re
原创
发布博客 2021.08.30 ·
4691 阅读 ·
0 点赞 ·
0 评论

pg_basebackup初识

什么是pg_basebackup?1.pg_basebackup是pg自带的备份工具,它用来做pg的基础备份。pg_basebackup可以用作PITR,也可以用来构造log-shipping standby和stream standby2.pg_basebackup总是备份整个pg,不能做单独的database备份。如果要单独备份某个database或者schema,应该用pg_dump。3.pg_basebackup会备份除了临时文件的所有文件,包括data目录下的所有数据文件,配置文件等等
原创
发布博客 2021.08.09 ·
407 阅读 ·
0 点赞 ·
0 评论

pg_rewind详解

什么是pg_rewind?pg_rewind是pg提供的工具,当2个pg实例时间线(timeline)出现分叉时,pg_rewind可以做实例间的同步。(比如主库运行的情况下,备库failover后运行了一段时间,此时主备的时间线就出现了分叉)pg_rewind会对比两者的大小,然后把大小不一样的文件从源拷贝到目标,包括配置文件。但是它不会对比没有发生改变的文件,所以pg_rewind在比较大的库,更改少量数据时,运行效率较高。pg_rewind可以运用在备库failover后,备库即时运行一段时间
原创
发布博客 2021.07.30 ·
589 阅读 ·
0 点赞 ·
0 评论

PG主从搭建——简易版

此次主从搭建全部使用pg9.6,在同一个机器上安装主库和从库,主库从库分别使用不同的端口1 环境准备1.1 软件准备文件:postgresql-9.6.17.tar.bz2(直接官网下载)解压:tar -xvf /pg/soft/postgresql-9.6.17.tar.bz2软件目录:/pg/soft/postgresql-9.6.17安装目录:(prefix指定安装目录)/pg/pg96主库data目录:/pg/pg96data_pri从库data目录:/pg/pg96da
原创
发布博客 2021.07.27 ·
166 阅读 ·
0 点赞 ·
0 评论

count(1),count(col1),count(*)的区别

1.count(1)=count(*),计算的是表的真实行数,无论行是否为空2.count(col1)计算的是col1列不为空的行数3.在mysql中,count(1),count(col1),count(*)均访问二级索引4.在oracle中,仅count(col1)访问索引,count(1)和count(*)均访问主键或表5.访问方式的区别是因为mysql索引存储了null值,oracle索引没有存储null值。oracle必须访问主键或表才可以count出表的真实行数,mysql则访问
原创
发布博客 2021.06.03 ·
206 阅读 ·
1 点赞 ·
1 评论

rr模式下的快照读--更新操作仍然会导致事务前后数据不一致

rr快照读只会读取当前事务下数据的“历史态”,但当更新(dml)时,事务会去查看“当前态”某些数据行,验证数据的可执行性(如主键冲突、唯一性约束冲突等等)。一但有“当前态”的行数据被更新,这个行就会和当前”历史态“数据合并成新的”历史态“,此后该事务的快照读均是读取的新”历史态“快照。
原创
发布博客 2021.05.19 ·
211 阅读 ·
0 点赞 ·
0 评论

innodb锁详解

如果是索引唯一扫描或主键唯一扫描,innodb只会上行锁锁住一行数据。如果是索引范围扫描或主键范围扫描,innodb会上临键锁。唯一索引同样会有索引范围扫描,仅在等值条件下扫描唯一索引(或主键)才会触发唯一扫描。临键锁会锁住“小于范围的最大存在值和大于范围的最小存在值”,如果没有实际存在值,innodb会给临键锁“超大值”或“超小值”去锁一个大范围。所以在某些情况下,一个update可以锁住整张表。
原创
发布博客 2021.05.24 ·
304 阅读 ·
0 点赞 ·
0 评论

关于组合索引的第二列为in时是否可用走索引的问题

组合索引的第二列为in时是否可用走索引?当时面试直接把我问蒙了。一般来说in会等价改写成or,然后走索引。比如where a in (1,2)等价于where a=1 or a=2在oracle中肯定会这样去改写,所以该走索引的还是会走索引。但是这个条件放在组合索引的第二列呢?首先等价改写同样成立,比如where a in (1,2) and b=0等价于where (a=1 or a=2)and b=0优化器是否会这样做呢?这只有测试了才知道oracle..
原创
发布博客 2021.05.11 ·
991 阅读 ·
0 点赞 ·
0 评论

show engine innodb status和innodb锁监控

innodb monitor是innodb内置的监控模块,用show engine innodb status就可以查看。innodb monitor output可以输出在错误日志中查看更细粒度的innodb锁信息,需要打开innodb_status_output_locks
原创
发布博客 2021.05.10 ·
407 阅读 ·
0 点赞 ·
0 评论

mysql内存溢出分析办法

mysql内存监控大体归为一下3步1.os角度查看mysql进程内存使用2.mysql服务角度查看mysql内存池使用3.开启performance_schema及内存监控1.从OS进程使用情况出发,查看mysql进程的内存使用情况因为mysql是单进程的,可以通过ps -aux或者top -H -p查看进程的内存使用情况#ps -aux|grep 3306root 40761 0.0 0.0 9696 1632 ? S Mar22 ...
原创
发布博客 2021.05.08 ·
619 阅读 ·
0 点赞 ·
0 评论

关于不等于是否可以走索引的问题

以前在学oracle的时候,不等于不能走索引似乎是一条铁律SQL> select a,count(*) from unequal_oracle group by a; A COUNT(*)---------- ---------- 1 2048 2 1create index idx_unequal on unequal_oracle(a);--a=2时,索引的过滤性是比较好的,这里我们取a<&
原创
发布博客 2021.04.26 ·
2010 阅读 ·
2 点赞 ·
0 评论

mysql分区表优化案例一则——分区扫描和分区索引扫描

测试mysql扫描分区和分区索引先做一些测试,指定分区字段,查看执行计划。测试环境数据库版本为mysql5.7创建分区表CREATE TABLE employes ( id INT NOT NULL , fname VARCHAR (30), lname VARCHAR (30), hired DATE NOT NULL DEFAULT '1970-01-01' , separated DATE NOT NULL DEFAULT '9999-
原创
发布博客 2021.04.16 ·
162 阅读 ·
0 点赞 ·
0 评论

redis复制原理和主从搭建步骤

一、redis主从概念1.1 redis主从基础1.redis主从本身是异步的,从库不会阻塞主库的任何操作2.redis一个主库可以有多个从库。从库也可以有从库3.redis通过replication ID 和offset确定同步位置4.redis从库默认为readonly5.redis是内存数据库,所有数据都放在内存中,数据量不会像一把关系型数据库一样那么大,所以拉取基线数据较简单1.2主从同步原理从服务器向主服务器发送PSYNC命令(redis2.8以前只有syn..
原创
发布博客 2021.04.16 ·
77 阅读 ·
0 点赞 ·
0 评论

mysql text字段的优化

mysql text字段比较特殊,text用来存储较多字符的字符串,因为text一般比较大,普通索引效率很低,不可以直接在text字段上创建普通索引。在text字段上可以创建2种索引:全文索引(fulltext index)和前缀索引(column prefix index)(实际上全文索引可以在char,varchar,text上创建)mysql全文索引mysql的全文索引跟Oracle的全文索引是类似的,全文索引将字段中的词汇进行索引,获取方式跟parser相关,所以也存在...
原创
发布博客 2021.03.26 ·
805 阅读 ·
0 点赞 ·
0 评论

performance_schema的配置

开启performance_schema修改performance_schema参数需要重启mysql[mysqld]performance_schema=ONSELECT * FROM INFORMATION_SCHEMA.ENGINES;或者 show engines;可以看出mysql把PERFORMANCE_SCHEMA看成一种存储引擎+--------------------+---------+------------------------------------------
原创
发布博客 2021.03.26 ·
257 阅读 ·
0 点赞 ·
0 评论

mysql truncate命令

truncate命令结果跟delete很像,但是他们的执行原理完全不一样。truncate本质还是ddl语句1.truncate先使用create命令创建表,然后drop源表,最后rename新表。2drop只是删除元数据,所以比delete快很多,特别是大表3 truncate本质是ddl,需要ddl权限。ddl本身是自提交的,所以truncate也不能rollback回滚4 因为是truncate是重建表,所以truncate是可以整理表碎片的(delete不可以)5 trunca.
原创
发布博客 2021.03.19 ·
618 阅读 ·
0 点赞 ·
0 评论

xtrabackup的flush table with read lock

xtrabackup是percona开发的mysql第三方工具,跟oracle的rman类似,都是物理备份。oracle的rman可以热备,xtrabackup是有锁的。rman和xtrabackup的热备差异可以看看我以前的文章(https://blog.csdn.net/qq_40687433/article/details/107367562?ops_request_misc=%257B%2522request%255Fid%2522%253A%252216157790741678026406
原创
发布博客 2021.03.15 ·
126 阅读 ·
0 点赞 ·
0 评论

mysql IO控制

mysql IO控制不仅与flush method有关,还需要深入了解linux内核IO调度机制。同步IO、异步IO、直接IO、缓存IO,他们又与fsync、O_DIRECT有什么关系?本篇为您详细讲述mysql IO调度机制
原创
发布博客 2021.03.11 ·
215 阅读 ·
0 点赞 ·
1 评论

记一次mysql内存泄露

监控告警某mysql实例内存使用率85%,而且在一点点的往上长实例分配内存130G登陆数据库show engine innodb status\Gbuffer pool使用约98G,占总内存的73%作业,还有10几%未知----------------------BUFFER POOL AND MEMORY----------------------Total large memory allocated 105545465856 --98GDictionary mem...
原创
发布博客 2021.03.05 ·
155 阅读 ·
0 点赞 ·
0 评论

为什么组合索引的范围查找不能过滤非前导列?

组合索引的规则例如组合索引(a,b)过滤条件为a=1 and b=2时,可以走组合索引过滤a和b过滤条件为a=1时,可以走组合索引过滤a过滤条件为b=2时,不可以走组合索引过滤(因为字段b不是先导列,组合索引过滤必须包含先导列)过滤条件为a<=1 and b<=2时,可以走组合索引过滤a<=1,但是不能过滤b<=2(范围过滤只能走先导列)过滤条件为a<=1时,可以走组合索引过滤a<=1过滤条件为b<=2时,不可以走组合索引过滤本.
原创
发布博客 2021.03.05 ·
265 阅读 ·
0 点赞 ·
2 评论
加载更多