专注,勤学,慎思。戒骄戒躁,谦虚谨慎

just do it

导航

2018年10月26日 #

Redis 数据类型归纳

摘要: Redis的数据类型从整体上看,都是Key-Value键值对的模型,数据类型更确切地说,应该是Value的数据类型,比如string,set,list等,都是key值对应的Value的数据集合格式。不同数据类型的不同之处在于Value存储的格式不一样。 整体上看,Redis¹数据类型相对比较简单,² 阅读全文

posted @ 2018-10-26 09:48 MSSQL123 阅读(398) 评论(0) 推荐(0) 编辑

2018年10月22日 #

TIMESTAMP类型字段在SQL Server和MySQL中的含义和使用

摘要: 公众号上转的满天飞的一篇文章,MySQL优化相关的,无意中瞄到一句“尽量使用TIMESTAMP而非DATETIME”,之前对TIMESTAMP也不太熟悉,很少使用,于是查了一下两者的区别。 其实,不管在SQL Server中还是MySQL中,“尽量使用TIMESTAMP而非DATETIME”都是有问 阅读全文

posted @ 2018-10-22 19:09 MSSQL123 阅读(11085) 评论(1) 推荐(3) 编辑

Redis阻塞诊断基础

摘要: slowlog Redis慢查询 slowlog 参数 slowlog-log-slower-than: 慢查询时间阈值,超过这个阈值的查询将会被记录,默认值10000,但是微妙,也即10毫秒。 slowlog-max-len:慢查询日志最大条数,默认值128,先进先出的队列的形式记录在内存中。 s 阅读全文

posted @ 2018-10-22 15:27 MSSQL123 阅读(650) 评论(0) 推荐(0) 编辑

2018年10月16日 #

MySQL分区表

摘要: 分区的作用分区是将一个表的数据按照某种方式,比如按照时间上的月份,分成多个较小的,更容易管理的部分,但是逻辑上仍是一个表。个人理解起来,分区跟性能没有必然关系,分区更多的是从管理的角度出发的。 MySQL分区表对分区字段的限制分区的字段,必须是表上所有的唯一索引(或者主键索引)包含的字段的子集换句话 阅读全文

posted @ 2018-10-16 10:58 MSSQL123 阅读(33790) 评论(1) 推荐(1) 编辑

2018年9月20日 #

Redis 主从复制

摘要: 启动多个Redis实例,如果是在单机下,复制出来两份Redis编译后的文件 cp -r /usr/local/redis5/ /usr/local/redis5_1 cp -r /usr/local/redis5/ /usr/local/redis5_2 如果实在单机下做测试,跑多个Redis服务的 阅读全文

posted @ 2018-09-20 13:59 MSSQL123 阅读(337) 评论(0) 推荐(0) 编辑

2018年9月14日 #

Redis安全以及备份还原

摘要: 启用密码 配置密码,配置文件中添加节点requirepass,如下root即passwordrequirepass root可以在登陆的时候用-a 指定password登陆,也可以不指定,登陆之后使用auth执行密码 备份还原 RBD的方式(Redis DataBase) 严格说Redis中的sav 阅读全文

posted @ 2018-09-14 15:17 MSSQL123 阅读(349) 评论(0) 推荐(0) 编辑

Redis物理文件结构

摘要: Redis物理文件结构 对于数据库,个人习惯先从物理结构文件入手,整体上看一下有哪些文件,都是什么作用。类似于MySQL,数据文件和配置文件是Redis最基本也是做主要的两个物理文件之一,相比MySQL或者其他数据库,Redis的相关的物理文件相当的简单。与MySQL眼花缭乱的各种数据文件,日志文件 阅读全文

posted @ 2018-09-14 12:42 MSSQL123 阅读(1220) 评论(0) 推荐(0) 编辑

Redis的Errorlog或者启动日志(错误日志)的配置

摘要: Errorlog或者是运行日志是任何一个软件的运行中异常诊断必看的文件之一,折腾Redis的过程中以为有默认的错误日志(或启动日志),不过一直没有发现类似的日志文件,在看了默认的配置文件之后,发现Redis默认并没有配置ErrorLog,上面写的很清楚,如果没有指定logfile(的路径),logs 阅读全文

posted @ 2018-09-14 10:55 MSSQL123 阅读(14928) 评论(0) 推荐(0) 编辑

2018年9月13日 #

Redis 编译安装

摘要: 系统学习一下,记录一下笔记,之前都是断断续续尝试过一些简单的安装使用 下载,解压 编译安装 copy配置文件 启动连接 ./bin/redis-server ./redis.conf 登陆./bin/redis-cli -h 127.0.0.1 -p 8000关闭./bin/redis-cli -h 阅读全文

posted @ 2018-09-13 16:01 MSSQL123 阅读(522) 评论(0) 推荐(0) 编辑

MySQL自增列锁模式 innodb_autoinc_lock_mode不同参数下性能测试

摘要: 20190701:感谢@接天居士的提示,在多核心CPU的配置环境下测试,确实是有差异的,感谢纠错,本来想删除这篇文章的,留着当错教训吧,测试环境差异造成的错误教训 对于innodb_autoinc_lock_mode 各种参数的值的含义,网上也有各种详解,看完觉得意犹未尽,这里不做阐述,只动手测试, 阅读全文

posted @ 2018-09-13 13:08 MSSQL123 阅读(2938) 评论(3) 推荐(0) 编辑

2018年9月12日 #

SQL Server并发操作单个表时发生在page页面级的死锁

摘要: 最近遇到的死锁问题都发生在并发操作单张表上,比较有意思,就模拟了重现了一下。根据非聚集索引为条件,删除某一个表的数据,类似于这么一个语句,delete from table where nocluster_index in (x,y,z,m,n……)in里面的内容不同,并发执行某些情况下,可能会引发 阅读全文

posted @ 2018-09-12 14:54 MSSQL123 阅读(1132) 评论(2) 推荐(1) 编辑

2018年8月23日 #

MySQL 8.0 中统计信息直方图的尝试

摘要: 直方图是表上某个字段在按照一定百分比和规律采样后的数据分布的一种描述,最重要的作用之一就是根据查询条件,预估符合条件的数据量,为sql执行计划的生成提供重要的依据在MySQL 8.0之前的版本中,MySQL仅有一个简单的统计信息却没有直方图,没有直方图的统计信息可以说是没有任何意义的。MySQL 8 阅读全文

posted @ 2018-08-23 20:53 MSSQL123 阅读(2664) 评论(1) 推荐(1) 编辑

2018年8月21日 #

(译)MySQL 8.0实验室---MySQL中的倒序索引(Descending Indexes)

摘要: 译者注:MySQL 8.0之前,不管是否指定索引建的排序方式,都会忽略创建索引时候指定的排序方式(语法上不会报错),最终都会创建为ASC方式的索引,在执行查询的时候,只存在forwarded(正向)方式对索引进行扫描。关于正向索引和反向索引,逻辑上很容易理解,这里有两个相关的概念:正向索引或者反向( 阅读全文

posted @ 2018-08-21 20:28 MSSQL123 阅读(4161) 评论(3) 推荐(4) 编辑

(译)MySQL的10个基本性能技巧

摘要: 原文出处:https://www.infoworld.com/article/3210905/sql/10-essential-performance-tips-for-mysql.html MySQL的10个基本性能技巧 与所有的关系数据库一样,MySQL正如一头怪兽一般, 它可能会在接到通知的一 阅读全文

posted @ 2018-08-21 11:16 MSSQL123 阅读(496) 评论(0) 推荐(0) 编辑

2018年8月10日 #

SQL Server中与IO相关的等待类型:IO_COMPLETION和PAGEIOLATCH_*

摘要: 一个大的SQL语句操作,执行计划中包含了一个merge join操作,观察到SQL长时间处于IO_COMPLETION等待状态,如果是读取相关的表的数据,服务器应该全力为其服务,但是服务器的物理IO又远远没有达到瓶颈。这个IO_COMPLETION到底是在做什么?是表的数据页IO请求还在其他操作?如 阅读全文

posted @ 2018-08-10 14:18 MSSQL123 阅读(805) 评论(0) 推荐(0) 编辑

2018年7月27日 #

SQL Server 与MySQL中排序规则与字符集相关知识的一点总结

摘要: 字符集&&排序规则 字符集是针对不同语言的字符编码的集合,比如UTF-8字符集,GBK字符集,GB2312字符集等等,不同的字符集使用不同的规则给字符进行编码排序规则则是在特定字符集的基础上特定的字符排序方式,排序规则是基于字符集的,是对字符集在排序方式维度上的一个划分。排序规则是依赖于字符集的,一 阅读全文

posted @ 2018-07-27 16:06 MSSQL123 阅读(1824) 评论(0) 推荐(1) 编辑

2018年7月6日 #

基于innodb_print_all_deadlocks从errorlog中解析MySQL死锁日志

摘要: 本文是说明如何获取死锁日志记录的,不是说明如何解决死锁问题的。 MySQL的死锁可以通过show engine innodb status;来查看,但是show engine innodb status;只能显示最新的一条死锁,该方式无法完全捕获到系统发生的死锁信息。如果想要记录所有的死锁日志,打开 阅读全文

posted @ 2018-07-06 13:34 MSSQL123 阅读(2816) 评论(0) 推荐(0) 编辑

2018年7月3日 #

MySQL一般查询日志或者慢查询日志历史数据的清理

摘要: general log&slow query log 对于MySQL的一般查询日志和慢查询日志,开启比较简单,其中公用的一个参数是log_output,log_output控制着慢查询和一般查询日志的输出方向可以是表(mysql.general_log,mysql.slow_log)或者文件(有参数 阅读全文

posted @ 2018-07-03 20:01 MSSQL123 阅读(2514) 评论(0) 推荐(2) 编辑

2018年6月28日 #

设计表的时候,对变长字段长度选择的一点思考

摘要: 设计表时,不管是在MSSQL还是MySQL或者Oracle,变长字段的长度衡量都是要经常面对的。对于一个变长的字段,在满足业务的情况下(其实所谓的满足业务是一个比较模糊的东西),到底是选择varchar(50)还是varchar(200)亦或是varchar(500)?对于保守型选择,往往是选择一个 阅读全文

posted @ 2018-06-28 20:01 MSSQL123 阅读(2703) 评论(0) 推荐(3) 编辑

2018年6月27日 #

基于MGR+Atlas的读写分离尝试,以及MGR+Keepalived+Atlas自动故障转移+读写分离设想

摘要: 目的是尝试altas的读写分离,现有一套搭建好做测试的MGR(单主),于是就腿搓绳,在MGR基础上搭建altas。 复制环境准备 读写分离理论上讲,跟复制模式没有关系,atlas负责的是重定向读写,至于复制模式自己选择,这里是测试环境,之前测试MGR的单机多实例,MGR单主模式的复制模式,就顺便借助 阅读全文

posted @ 2018-06-27 21:01 MSSQL123 阅读(1023) 评论(2) 推荐(2) 编辑

2018年6月24日 #

MySQL Tips

摘要: MySQL中的一些Tips,个人总结或者整理自网络 不明白为什么MySQL的很多材料中总是喜欢把联合(复合)索引和覆盖索引放在一块说事? 1,联合索引是一种索引的类型,指创建索引的时候包含了多个字段。2,覆盖索引是一种查询优化行为,索引结构本身就可以满足查询,无需回表,而不是一种索引。3,联合索引和 阅读全文

posted @ 2018-06-24 10:32 MSSQL123 阅读(432) 评论(0) 推荐(0) 编辑

基于Keepalived的MySQL高可用

摘要: keepalived负责的是故障转移,至于故障转以后的节点之间数据的一致性问题依赖于具体的复制模式。不管是主从、一主多从还是双主、集群节点个数、主从具体的模式无关(常规复制,半同步复制,GTID复制,多线程复制,甚至可以是MGR)都没有直接的关系。个人认为,MySQL高可用方向,MGR+自动故障转移 阅读全文

posted @ 2018-06-24 09:51 MSSQL123 阅读(639) 评论(0) 推荐(0) 编辑

2018年6月20日 #

SQLServer与MySQL约束/索引命名的一些差异总结

摘要: 约束是数据库完整性的保证,主要分为:主键/外键/唯一键/默认值/check等类别,约束是一个逻辑概念,表示数据的某些特性(不能为空,唯一,必须满足某些条件等等),索引是一个逻辑与物理概念的结合,逻辑上是一种数据结构,物理上要占用实实在在的存储空间。对于主键和唯一键约束,在sqlserver中会自动生 阅读全文

posted @ 2018-06-20 22:31 MSSQL123 阅读(4421) 评论(4) 推荐(3) 编辑

MySQL后台线程整理总结

摘要: 本文整理自《MySQL技术内幕 InnoDB存储引擎》 MySQL的服务实现通过后台多个线程、内存池、文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务。以下简单总结MySQL的一些后台线程以及主要作用,以及innodb引擎的变化升级情况。 整体上看,My 阅读全文

posted @ 2018-06-20 21:50 MSSQL123 阅读(2834) 评论(0) 推荐(0) 编辑

2018年6月14日 #

MongoDB基础入门

摘要: 1,安装 下载解压安装包 环境变量配置 配置文件(etc/mongodb.cnf) 不启用验证方式,直接mongo命令就可以登录数据 2,初始化权限 添加管理员账户 重启mongodb服务,mongo命令仍能访问数据库但是不能进行任何操作 使用身份认证方式登录之后,就可以操作了 :mongo --p 阅读全文

posted @ 2018-06-14 22:05 MSSQL123 阅读(570) 评论(0) 推荐(0) 编辑

2018年6月8日 #

SQL Server死锁诊断--同一行数据在不同索引操作下引起的死锁

摘要: 死锁概述 对于数据库中出现的死锁,通俗地解释就是:不同Session(会话)持有一部分资源,并且同时相互排他性地申请对方持有的资源,然后双方都得不到自己想要的资源,从而造成的一种僵持的现象。当然,在任何一种数据库中,这种僵持的情况不会一直持续下去,因为一直持续下去双方永远都无法执行,没有任何意义,在 阅读全文

posted @ 2018-06-08 20:19 MSSQL123 阅读(4154) 评论(4) 推荐(4) 编辑

2018年5月29日 #

MySQL InnoDB 事务实现过程相关内容的概述

摘要: MySQL事务的实现涉及到redo和undo以及purge,redo是保证事务的原子性和持久性;undo是保证事务的一致性(一致性读和多版本并发控制);purge清理undo表空间背景知识,对于Innodb表中的行每一行包括:6字节的事务ID(DB_TRX_ID)字段: 用来标识最近一次对本行记录做 阅读全文

posted @ 2018-05-29 21:34 MSSQL123 阅读(522) 评论(1) 推荐(1) 编辑

2018年5月23日 #

MySQL GTID复制Slave跳过错误事务Id以及复制排错问题总结

摘要: GTID复制典型的复制错误有两种:1,数据对象级别的错误,包括主库上update的数据在从库上不存在,主从逐渐冲突,库表索引等对象的冲突等等, 如果是纯粹的跳过错误的话,这一类的错误需要跳过思路是找到主库binlog中对应的事务Id然后在从库上跳过即可。2,日志找不到的错误,也即从库在执行利用主库上 阅读全文

posted @ 2018-05-23 22:08 MSSQL123 阅读(8169) 评论(0) 推荐(0) 编辑

2018年5月22日 #

MySQL复制相关技术的简单总结

摘要: MySQL有很多种复制,至少从概念上来看,传统的主从复制,半同步复制,GTID复制,多线程复制,以及组复制(MGR)。咋一看起来很多,各种各样的复制,其实从原理上看,各种复制的原理并无太大的异同。每一种复制的出现都是有其原因的,是解决(或者说是弥补)前一种的复制方案的潜在的问题的。新的复制方式的出现 阅读全文

posted @ 2018-05-22 21:53 MSSQL123 阅读(915) 评论(2) 推荐(2) 编辑

2018年5月18日 #

SQL Server扩展事件的使用ring_buffer target时“丢失”事件的原因分析以及ring_buffer target潜在的问题

摘要: 事情起因: 排查SQL Server上的死锁问题,一开始想到的就是扩展事件, 第一种方案,开profile守株待兔吧,显得太low了,至于profile的变种trace吧,垂垂老矣,也一直没怎么用过。 第二种方案是开启TRACE flag(DBCC TRACEON (3605,1204,1222,- 阅读全文

posted @ 2018-05-18 21:00 MSSQL123 阅读(883) 评论(2) 推荐(3) 编辑

2018年5月17日 #

zabbix 安装

摘要: LAMP的环境 需要先准备好LAMP的环境 由于之前我已经使用yum完整安装过一套Zabbix,说实话,yum安装的路径乱七八糟的,真不如二进制包安装自己配置清晰,先全部卸载相关组件,确保是一个干净的环境 重新安装一遍,记录一下,否则时间长了又忘了具体的过程了。 二进制包下载 wget http:/ 阅读全文

posted @ 2018-05-17 21:59 MSSQL123 阅读(473) 评论(0) 推荐(2) 编辑

2018年4月25日 #

MySQL多实例的环境下,服务器端本地连接到指定实例的问题(sock方式连接)

摘要: 涉及到sock连接的问题。 为了测试MySQL的某些个特性,在一个机器上安装了多个MySQL的实例,如下截图,有两个实例,一个端口是8000,一个端口是8001。在使用mysql -uroot -p -P8001连接至端口号为8001的MySQL实例的时候,show variables like ' 阅读全文

posted @ 2018-04-25 18:30 MSSQL123 阅读(1517) 评论(0) 推荐(1) 编辑

2018年3月14日 #

binlog2sql实现MySQL误操作的恢复

摘要: 对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能。原理不难理解,基于MySQL的row格式的binlog中,记录历史的增删改SQL信息,基于此解析出来对应的SQL语句(回滚的话就是 阅读全文

posted @ 2018-03-14 22:17 MSSQL123 阅读(1385) 评论(1) 推荐(3) 编辑

MySQL 8.0 新增SQL语法对窗口函数和CTE的支持

摘要: 尝试了一下MySQL 8.0的部分新特性。 如果用过MSSQL或者是Oracle中的窗口函数(Oracle中叫分析函数), 然后再使用MySQL 8.0之前的时候,就知道需要在使用窗口函数处理逻辑的痛苦了,虽然纯SQL也能实现类似于窗口函数的功能,但是这种SQL在可读性和以及使用方式上大打折扣,看起 阅读全文

posted @ 2018-03-14 22:03 MSSQL123 阅读(11364) 评论(0) 推荐(3) 编辑

2018年2月6日 #

MySQL统计信息以及执行计划预估方式初探

摘要: 数据库中的统计信息在不同(精确)程度上描述了表中数据的分布情况,执行计划通过统计信息获取符合查询条件的数据大小(行数),来指导执行计划的生成。在以Oracle和SQLServer为代表的商业数据库,和以开源的PostgreSQL为代表的数据库中,直方图是统计信息的一个重要组成部分。在生成执行计划的时 阅读全文

posted @ 2018-02-06 22:21 MSSQL123 阅读(1929) 评论(2) 推荐(2) 编辑

2018年1月28日 #

MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结

摘要: MySQL中有六种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。其中重做日志和回滚日志与事务操 阅读全文

posted @ 2018-01-28 10:17 MSSQL123 阅读(34685) 评论(10) 推荐(16) 编辑

2018年1月25日 #

MySQL中Checkpoint技术

摘要: 个人读书笔记,详情参考《MySQL技术内幕 Innodb存储引擎》 1,checkpoint产生的背景数据库在发生增删查改操作的时候,为了提高事物操作的效率,都是先在buffer pool中完成的,buffer pool中修改之后的数据,并没有立即写入到磁盘,这有可能会导致内存中数据与磁盘中的数据产 阅读全文

posted @ 2018-01-25 21:35 MSSQL123 阅读(1150) 评论(1) 推荐(0) 编辑

2018年1月21日 #

Inception服务的安装以及使用Python 3 实现MySQL的审计

摘要: Inception服务的安装以及使用Python实现MySQL的审计 Bison是Inception服务所依赖的包之一,但是某些Linux版本已安装的Bison,或者是通过yum安装的Bison,通常是Bison 3.0+版本的.对于Inception程序来说,其Bison版本是过高的,会导致Inc 阅读全文

posted @ 2018-01-21 11:45 MSSQL123 阅读(3643) 评论(0) 推荐(0) 编辑

2017年11月29日 #

SQL Server与MySQL在“存在则更新,不存在则插入”并发处理上的一些差异。

摘要: “存在则更新,不存在则插入的逻辑”并发情况下的处理 在sqlserver中: 在sqlserver中,是通过可序列化隔离级别+排它锁的方式来锁定一个范围来实现的当前锁定一个不存在的记录的时候,sqlserver是通过范围锁来实现的,具体锁定的范围,表中已存在的数据和当前具体判断的Id有关参考之前写的 阅读全文

posted @ 2017-11-29 16:04 MSSQL123 阅读(1315) 评论(0) 推荐(0) 编辑

2017年11月27日 #

Python导出MySQL数据库中表的建表语句到文件

摘要: 为了做数据对象的版本控制,需要将MySQL数据库中的表结构导出成文件进行版本化管理,试写了一下,可以完整导出数据库中的表结构信息 建库测试 执行的时候会提示一个警告,但是不影响最终的结果 mysqldump: [Warning] Using a password on the command lin 阅读全文

posted @ 2017-11-27 11:21 MSSQL123 阅读(5153) 评论(0) 推荐(1) 编辑