- 博客(87)
- 收藏
- 关注
原创 MySQL优化之理解查询计划
参考 《MySQL 是怎样运行的:从根儿上理解 MySQL》 作者:小孩子4919参考 《MySQL 官方文档》要进行数据库 SQL 优化必须先理解一条 SQL 具体是怎么执行的。MySQL 提供了 EXPLAIN 来描述优化器处理 SQL 的规则以及流程。本文会详细解释 EXPLAIN 各字段的含义以及不同结果所代表的意义,从而帮助理解查询计划,为 SQL 优化做基础。一、总览图二、EXPLAIN 概述EXPLAIN 中会解释 MySQL 是如何处理语句,包括表的连接方式以及处理顺序等信息。
2021-08-03 17:41:05 355
原创 MySQL基于xtrabackup全量备份进行单表恢复
MySQL基于xtrabackup全量备份进行单表恢复一、背景 Percona-xtrabackup是Percona开发的用于MySQL数据库物理热备的备份工具,在生产环境中经常用于做MySQL InnoDB类型表的备份。数据库使用者经常可能更新数据时忘记添加WHERE条件或者进行了误删除操作。此时若进行整库恢复会造成时间成本很高,并且DBA一般不会直接操作业务数据,这时会新建一个临时的独立节点只针对误操作的表进行单表恢复。二、所需要的文件由于备份时进行了压缩,所以这里显示的数据文件
2021-03-15 18:41:23 1293
原创 Debezium同步MySQL变更到kafka集群及REST API使用方法汇总
Debezium安装及REST API使用方法参考文档:Debeziun官方文档:https://debezium.io/documentation/reference/1.3/https://blog.csdn.net/ylejun/article/details/107272923一、Kafka-distributed模式安装启动Debezium1、前期准备 前期准备需安装kafka、zookeeper集群及MySQL测试数据库1. kafka集群信息1.1.1.1:7
2021-01-05 11:21:12 2110
原创 MySQL使用pt-kill处理慢查询链接,数量触发阈值后发送邮件报警
这个只是我作为数据库和开发小白自己的一个解决思路,如果有更恰当的思路,欢迎评论或私聊呀~一、项目背景业务数据库被异常调用时导致慢查询量增大,影响到正常业务使用,业务只能通过nginx超时异常等来进行问题排查,增大了定位和处理问题的难度、时间,尤其商品库或者交易库可能会出现页面无法正常显示的情况。故业务需求为若主库和从库慢查询总量每分钟超过某个阈值之后则发送邮件报警。二、开发逻辑问题及处理1、问题梳理由于主库和从库在不同主机上,故不能开启pt-kill的--log-dsn参数将pt-kill结果写
2020-08-10 13:10:00 780
原创 mydumper备份tokuDB引擎数据恢复时数据不一致问题排查及处理
一、问题背景 之前线上和线下测试环境数据库仅允许为MyISAM和InnoDB引擎存在,但本次数据迁移中存在tokuDB引擎的库,一直使用percona提供的xtrabackup每天进行数据备份,innobackup自动恢复数据。但由于该情况并不支持tokuDB引擎的备份,故本次数据迁移生成的十几个集群备份全部无效,后面决定使用mydumper来进行备份恢复。二、备份方案及问题处理1、备份恢复流程 使用mydumper+myloader来进行tokuDB引擎库的备份恢复,简易备份恢复流程如下:
2020-08-06 21:47:10 345
原创 ClickHouse存储引擎之ReplacingMergeTree引擎
同时发布于个人博客https://schnappi618.github.io/中~一、ReplacingMergeTree作用 ClickHouse中最常用也是最基础的表引擎为MergeTree,在它的功能基础上添加特定功能就构成了MergeTree系列引擎。MergeTree支持主键,但主键主要用来缩小查询范围,且不具备唯一性约束,可以正常写入相同主键的数据。但在一些情况下,可能需要表中没有主键重复的数据。ReplacingMergeTree就是在MergeTree的基础上加入了去重的功能,但它.
2020-08-03 20:20:45 23519
原创 B树和B+树简单分析总结
本文参考 公众号 程序员小灰中关于B+树的讲解 MySQL索引主要基于Hash和B+树的数据结构,本文将对B树和B+树进行一个简单的描述。 我们都知道,树的查询效率高,并且可以保持有序,但MySQL并未使用二叉查找树这种更快的查找方式来设计索引,是由于在服务器上查找时必须考虑到IO因素,并且数据库索引是保存在磁盘上的,当数据量比较大时,索引大小甚至可以到到G单位以上,当我们...
2020-05-05 00:25:31 1465 2
原创 二分查找和平衡二叉树
本文部分内容来自《图解算法》和《MySQL技术内幕 InnoDB存储引擎》 在研究数据库索引B+树的数据结构之前,需要对二分查找、平衡二叉树等有一个基础的了解,才能更加清楚B+树索引的工作方式。一、二分查找法1、概述 二分查找(binary search)法也叫做折半查找,输入一个有序的元素列表,如果要查找的元素包含在列表中,二分查找返回其位置,否则返回nu...
2020-05-05 00:20:55 1680
原创 行存与列存的简单对比
这篇文章列存的查询测试使用了clickhouse数据库,由于clickhouse的原理还在研究中,所以具体流程的分析存在欠缺,后面会在clickhouse的文档中描述。关于行存与列存的对比看前面三部分即可。一、行式存储 一般的事务型数据库(OLTP)基本会增删改查同一行数据,故大多使用了行式存储,所有数据按列名排成一行,可通过主键快速找到对应的那行数据,基本数据存储情况如下表。编...
2020-05-04 15:28:42 2071
原创 harbor配置nginx代理
同时发布于schnappi618’s blog 从前面的文章harbor搭建docker私有镜像仓库可以看出harbor默认只能使用harbor.yml中hostname指定的ip或主机名作为web访问地址,但在实际使用过程中,一般不允许ip地址或者主机名直接暴露在外访问,故需要配置nginx代理,通过代理后指定的地址进行访问。一、设置原理通过nginx为harbor后端暴露的地址及...
2020-04-09 23:03:17 12432 8
原创 harbor配置外部数据库
同时发布于schnappi618’s blogharbor默认安装会使用官方打包的PostgreSQL docker镜像goharbor/harbor-db,harbor启动之后的数据均存放在改数据库上,后续管理可能存在不便,故使用harbor配置外部数据库。一、搭建PostgreSQL数据库 harbor从1.6版本之后仅支持PostgreSQL数据库作为外部数据库,故需要搭建Pos...
2020-04-09 10:53:53 6609 4
原创 clickhouse用户配置文件详解
同时发布于 schnappi618‘s blog参考网页:clickhouse官方文档clickhouse配置文件参数 ClickHouse的用户及访问权限控制均可由配置文件直接进行标准化配置,一般由user.xml文件设置,该文件名在/etc/clickhouse-server/config.xml中修改,详情可参考clickhouse-server配置文件详解,若需要对某一个用...
2020-03-30 19:37:47 12621
原创 利用docker安装启动ClickHouse
一、clickhouse简介 ClickHouse是一个面向列存储的数据库管理系统,可以使用SQL查询实时生成分析数据报告,主要用于OLAP(在线分析处理查询)场景。关于clickhouse原理以及基础知识在以后学习中慢慢总结。(_)二、安装启动这里主要描述如何使用docker安装并启动clickhouse,其他安装方法均参考了官方文档: https://clickhouse...
2020-03-07 23:08:42 24804 6
原创 Ansible配置文件详解
Ansible配置文件详解Ansible的默认配置文件是/etc/ansible/ansible.cfg,配置文件可以对Ansible进行各个参数的调整。Ansible常用参数详解:[defaults] #通用默认配置inventory = /etc/ansible/hosts #被控制端IP或者DNS列表library = /...
2018-08-21 15:30:39 5295
原创 Ansible实践篇(四):Ansible PlayBook应用
Ansible实践篇(四):Ansible PlayBook应用Ansible实践篇(四):Ansible PlayBook应用 一、PlayBook的作用二、PlayBook组成及参数详解 1、PlayBook组件包括 2、target常用参数详解 3、variable常用参数详解 4、task常用参数详解三、YAML语言特性四、Ansible PlayBook示...
2018-08-21 15:05:34 4094 1
原创 Ansible实践篇(三):Ansible常用模块:cron、synchronize、shell、service
Ansible实践篇(三):Ansible常用模块:cron、synchronize、shell、service一、Ansible cron模块Ansible cron模块主要用于添加、删除、更新操作系统的crontab任务计划 cron模块使用详解:name:任务计划名称cron_file:替换客户端该用户的任务计划的文件minute:分(0-59, * ,*/2)ho...
2018-08-21 12:02:09 24260 1
原创 Ansible实践篇(二):Ansible常用系统模块:ping、command、copy、yum、file、user
Ansible实践篇(二):Ansible常用系统模块:ping、command、copy、yum、file、user一、Ansible ping模块Ansible最基础的模块是ping模块,主要用于判断远程客户端是否在线,用于ping本身服务器,返回值是changed、ping使用Ansible ping服务器状态,代码为ansible -k all -m ping因为我的ans...
2018-08-20 21:39:24 35473 6
原创 Ansible实践篇(一):Ansible免密登录
Ansible实践篇(一):Ansible免密登录主要是ansible服务端需要将/root/.ssh/id_rsa.pub分发到其他服务器有两个命令比较重要ssh-keygen :这个命令是用来生成本机的公钥和私钥的ssh-keyscan : 这条命令是用来把远程服务器的公钥来获取到本地的(1)首先关闭公钥认证如果说不想关闭公钥认证的话,可以用ssh-keycan 命令...
2018-08-20 16:54:52 32993 2
原创 Ansible原理篇:自动化运维工具简介、Ansible原理、安装、参数详解
Ansible原理篇:自动化运维工具简介、Ansible原理、安装、参数详解Ansible原理篇:自动化运维工具简介、Ansible原理、安装、参数详解 一、自动化运维工具简介 1、Puppet特点2、SaltStack特点3、Ansible特点二、Ansible原理三、Ansible管理工具安装配置四、Ansible工具参数一、自动化运维工具简介目前常见的运...
2018-08-20 15:31:31 3249
原创 LVS实践篇:LVS(DR)实现负载均衡、lvs+ldirectord、lvs+keepalived、LVS负载均衡排错
lvs实践篇:LVS(DR)实现负载均衡、lvs+ldirectord、lvs+keepalived、LVS负载均衡排错lvs实践篇:LVS(DR)实现负载均衡、lvs+ldirectord、lvs+keepalived、LVS负载均衡排错 一、通过lvs实现负载均衡 1、实验环境2、安装配置VS(调度器)3、ipvsadm配置参数说明4、配置realserver5、测试二...
2018-08-16 19:35:33 1187
原创 keepalived:简介、nginx+keepalived集群、nginx+keepalived双主架构
keepalived:简介、nginx+keepalived集群、nginx+keepalived双主架构keepalived:简介、nginx+keepalived集群、nginx+keepalived双主架构 一、keepalived高可用简介二、nginx+keepalived集群 1、原理及环境2、安装配置3、测试三、nginx+keepalived双主架构 1、原...
2018-08-15 23:16:17 3791 3
原创 LVS原理篇:LVS简介、结构、四种模式、十种算法
LVS原理篇:LVS简介、结构、四种模式、十种算法LVS是Linux virtual server的缩写,为linux虚拟服务器,是一个虚拟的服务器集群系统。LVS简单工作原理为用户请求LVS VIP,LVS根据转发方式和算法,将请求转发给后端服务器,后端服务器接收到请求,返回给用户。对于用户来说,看不到Web后端具体的应用。LVS原理篇:LVS简介、结构、四种模式、十种算法 一、...
2018-08-15 12:06:55 31414 3
原创 数据库备份与恢复,全备份、增量备份
数据备份一、数据备份方法及策略MySQL数据库最常用的备份方法如下:直接cp备份sqlhotcopy备份主从同步复制Mysqldump备份xtrabackup备份二、mysqldump备份通常小于100GB的MySQL数据库可以使用mysqldump备份工具进行备份,如果是超过100GB的数据,由于mysqldump备份方式采用的是逻辑备份,最大的缺陷是备份...
2018-08-09 17:46:48 16043 2
原创 mysql主从、基于GTID复制、mysqlproxy读写分离
MySQL集群实战实验环境: rhel6.5 server2(主):172.25.70.2rhel6.5 server3(从):172.25.70.3rpm包:mysql5.7一、环境设置为server2和server3都安装mysql5.7的rpm包,并进行初始化设置,这里使用server2做演示 [root@server2 mysql5.7]# yum ins...
2018-08-07 18:25:01 370
原创 mysql原理简介、安装设置、索引、慢查询、优化思想
MySQL服务器MySQL服务器 一、MySQL原理简介二、数据库简单操作 1、MySQL数据库安装2、MySQL字符集设置3、MySQL数据库密码管理4、MySQL数据库索引5、MySQL数据库慢查询6、MySQL数据库优化一、MySQL原理简介MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表格中,而不将所有数据放在同一个大仓库中,这样就...
2018-08-06 11:36:00 483
原创 关系数据库基础理论
mysql系列之一关系数据库基础理论正是数据库管理的需要催生了数据库管理系统DBMS,而关系型数据库管理系统为RDBMS常见的数据模型有三种: - 层次模型 - 网状模型 - 关系模型一、关系数据库的产生在DBMS出现之前,人们用文件来管理数据,但存在很多缺陷: 1. 数据冗余和不一致性。数据冗余表示在每个shell脚本中基本上都是/bin/bash,但很多用户使用...
2018-08-06 11:02:06 9723
原创 lnmp架构、安装lnmp,lnmp+Discuz,lnmp+redis
lnmp架构、安装lnmp,lnmp+Discuz,lnmp+redis服务器环境安装环境:rhel6 iptables selinux stopmysql:官网下载的5.7的源码包 php:php-5.6.19.tar.bz2nginx:nginx-1.10.1.tar.gz论坛:Discuz_X3.2_SC_UTF8.zipredis:redis-4.0.8.tar.g...
2018-08-01 22:40:08 1020
原创 可信计算复习
可信计算复习一、名词解释TPM(Trusted Platform Module):可信平台模块,是一个SOC(System on Chip)芯片,加上嵌入式操作系统后构成一个以安全保密功能为特色的嵌入式计算系统TSS(TCG Software Stack):可信软件栈,是可信计算平台上TPM的支撑软件。TSS的主要作用是为操作系统和应用软件提供使用TPM的接口TNC(Trusted ...
2018-06-26 21:33:54 8426 5
原创 老王python之基本数据结构总习题
老王python之基本数据结构习题**习题1: 列表a = [11,22,24,29,30,32] 1 把28插入到列表的末端 2 在元素29后面插入元素57 3 把元素11修改成6 3 删除元素32 4 对列表从小到大排序**>>> a = [11,22,24,29,30,32]>>> a.append(28)>>>...
2018-06-21 19:24:22 2267
原创 老王python之基本数据结构——字典习题
基本数据结构之字典习题**已知字典:ainfo = {‘ab’:’liming’,’ac’:20},完成下面的操作 1 使用2个方法,输出的结果: ainfo = {‘ab’:’liming’,’ac’:20,’sex’:’man’,’age’:20} 2 输出结果:[‘ab’,’ac’] 3 输出结果:[‘liming’,20] 4 通过2个方法返回键名ab对应的值。 5 通过2...
2018-06-21 19:23:44 556
原创 老王python之基本数据结构——字典
老王python之基本数据结构——字典字典是无序的,不能通过偏移来进行存取,只能通过键来进行存取一、字典字典的格式是字典 = {'key':value},key代表键,value代表key对应的值 特点 字典是无序的通过键来读取内容可以进行嵌套,方便我们组织多种数据结构字典是可变类型,可以在原地修改内容组成字典的键必须是不可变的数据类型。比如:数字、字符串、元组等,...
2018-06-21 19:23:04 625
原创 老王python之基本数据结构——元组和集合习题
基本数据结构之元组和集合习题**一、 元组;a = (1,2,3) 1 有2种方法输出实现下面的结果:(5,2,3) 2 判断2是否在元组里**>>> a = (1,2,3)>>> b = list(a)>>> b.insert(0,5)>>> b.remove(1)>>> b
2018-06-21 19:22:08 650
原创 老王python之基本数据结构——元组和集合
老王python之基本数据结构——元组和集合一、元组1、元组的特点有序的集合通过偏移来取数据>>> a = (1,2,3)>>> a[1:3](2, 3)属于不可变的对象,不能在原地来修改数据,没有排序、修改等操作要想进行修改等操作的话,可以先转换成列表,修改数据之后,再用tuple()方法把它转换成元组2、...
2018-06-21 19:21:32 374
原创 老王python之基本数据结构——列表习题
基本数据结构之列表习题**一 下面列表: a = [1,2,3,4,5,333,11,44],输出下面的结果: [4,5,333]**>>> a = [1,2,3,4,5,333,11,44]>>> print a[3:6][4, 5, 333]**二 有下面2个列表 a = [1,2,3] b = [4,5,6],用2个方法输出下面结果...
2018-06-21 19:20:42 1182 3
原创 老王python之基本数据结构——列表
老王python之基本数据结构——列表老王python之基本数据结构——列表 1、列表的四个基本特点2、列表的切片3、列表的添加操作4、列表的修改操作5、列表的删除操作6、列表的成员关系7、列表推导式比如要生成一个1到10的列表8、列表的排序翻转列表扩展(应用) 1、内置list方法2、xrange和range的区别3、列表推导式再应用4、再谈引用5、再议删...
2018-06-21 19:19:41 575
原创 老王python之基本数据类型习题
老王python之基本数据类型习题1.1 第一节习题1 : info = ‘abc’ info[2] = ‘d’ 结果是什么,为什么会报错呢?**结果为下图所示: 因为字符串是不可以进行修改的,第二条试图将info[2]修改为’d’,所以会有报错2 如果要把上面的字符串info里面的c替换成d,要怎么操作呢?>>> info = 'abc'&...
2018-06-19 23:43:31 4595
原创 老王python之python基本数据类型
老王python之python基本数据类型python一切皆为对象(包含了一系列的数据和操作这些数据的方法,就叫做对象)1、数据类型的组成 数据类型组成 查看 身份(唯一标识符) id 类型 type 值 数据项2、常用的基本数据类型 2.1 int整型 2.2 bool型bool型为True...
2018-06-19 23:38:07 469
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人