• 最基础的分类统计SQL语句

    原始数据如下:想要得到的结果:sql语句:select dw,count(distinct zy) as zycount from table group by dw

    MySQL 2021年01月23日 10 0
  • 使用源码编译安装MySQL

    前言环境准备源码编译安装下载MySQL源码解压源码文件开始编译操作安装MySQL数据库生成二进制安装包初始化MySQL创建系统用户执行数据库的初始化启动MySQL服务登录MySQL数据库总结前言前面的文章中,我们介绍了MySQL使用二进制文件安装的大致过程。今天我们来看下另外一种安装方式,那就是使用MySQL的源码自己编译安装MySQL。环境准备我们使用docker运行一个最新...

    MySQL 2021年01月22日 13 0
  • 深入剖析 RSA 密钥原理及实践

    一、前言在经历了人生的很多至暗时刻后,你读到了这篇文章,你会后悔甚至愤怒:为什么你没有早点写出这篇文章?!你的至暗时刻包括:1.你所在的项目需要对接银行,对方需要你提供一个加密证书。你手上只有一个六级英语证书,不确定这个是否满足对方需求。由于你迟迟无法提供正确的证书,项目因此延期,加薪计划泡汤,月供断了,女朋友分手了,你感觉人生完了。2. 你老骥伏枥 2 个月,终于搞懂了.cr...

    MySQL 2021年01月20日 30 0
  • 不是吧?为了加快速度,Redis竟做了这么“疯狂”的设计

    前言列表对象是 Redis 中 5 种基础数据类型之一,在 Redis 3.2 版本之前,列表对象底层存储结构有两种:linkedlist(双端列表)和 ziplist(压缩列表),而在 Redis 3.2 版本之后,列表对象底层存储结构只有一种:quicklist(快速列表),难道通过精心设计的 ziplist 最终被 Redis 抛弃了吗?列表对象同字符串对象一样,列表对象...

    Redis 2021年01月18日 44 0
  • redis存json数据时选择string还是hash

    我们在缓存json数据到redis时经常会面临是选择string类型还是选择hash类型去存储。接下来我从占用空间和IO两方面来分析这两种类型的优势。1、占用空间根据数据结构的共识我们知道hashtable类型是要比string类型更占用空间, 而ziplist类型与string类型占用的空间基本相差不大。如下图就是ziplist的存储的格式那我们接下来分别分析redis的st...

    Redis 2021年01月17日 41 0
  • SQL SERVER新建用户并授权及解决远程连接问题

    直接用sa用户连接不安全,一般需要新建一个用户。一、新建一个用户并授权:--创建登陆帐户(create login)create login username with password='123456', default_database=master--为登陆账户创建数据库用户(create user),一般用户名跟登陆账户名一样create user username f...

    SQL SERVER 2021年01月16日 78 0
  • Redis高可用架构演进

    Redis系列第1篇Redis是目前使用最广泛的缓存程序之一,也被应用于多种场景,例如数据缓存、分布式锁等,Redis官方提供了多种部署架构,以满足不同应用场景下对于高可用和扩展性的要求。01单节点(single)单节点的部署是最简单的,只要启动一个redis进程就可以了,但是不具备高可用性,一般生产环境不建议使用,其主要有以下问题:单节点,一旦出问题,服务将会不可用【1】单节...

    Redis 2021年01月15日 38 0
  • 数据库安全:数据库加密技术介绍

    数据库加密是计算机系统对信息进行保护的一种最可靠的方法。它利用密码技术对信息进行加密,实现信息屏蔽,从而起到保护信息安全的作用。对数据库中的数据进行加密,可以防止数据在存储和传输过程中失密。常用的数据加密技术按照作用不同分为数据加密技术、数据存储加密技术、数据完整性鉴别技术、密钥管理技术。1、数据传输加密技术 数据传输加密技术的目的是对传输中的数据流加密,通常由线路加密与端到端...

    数据库技术 2021年01月15日 48 0
  • Redis集群的5种使用方式,及各自优缺点对比分析

    本文主要针对 Redis 常见的几种使用方式及其优缺点展开分析。一、常见使用方式Redis 的几种常见使用方式包括:Redis 单副本Redis 多副本(主从)Redis Sentinel(哨兵)Redis ClusterRedis 自研二、各种使用方式的优缺点1、Redis 单副本Redis 单副本,采用单个 Redis 节点部署架构,没有备用节点实时同步数据,不提供数据持久...

    Redis 2021年01月14日 58 0
  • mysql中的各种日志文件

    mysql在CentOS 7安装好之后,配置文件一般在/etc/my.cnf中。数据目录一般在/var/lib/masql下,其中包含一些日志文件。1)通用日志通用查询日志会记录用户的所有操作,其中还包含增删查改等信息。在并发操作大的环境下会产生大量的信息从而导致不必要的磁盘IO,会影响mysql的性能的。所以,默认情况下是关闭的。可以用 general_log={ON|OFF...

    MySQL 2021年01月14日 50 0
  • 搭建mysql主从并用springboot读写分离

    本文通过docker快速搭建mysql主从数据库,并用spring boot测试读写分离的实现,这是一个实验环境,便于开发人员开发业务功能代码。一、用docker进行msyql主从环境搭建在搭建环境之前保证已安装docker,本文不进行docker安装的介绍。1、安装master结点执行下面安装docker run --name mysql-master --privilege...

    MySQL 2021年01月14日 44 0
  • 数据库同步软件DBSync的设计与实现

    DBSync工作原理示意图DBSync是一款数据库同步软件,支持各种数据库之间的同步,支持增量同步。本文分享该软件的产品渊源、设计思想、技术要点、功能特征、使用方法,最后分析其优缺点,供IT技术人员参考,也欢迎大家提供宝贵意见,促进我们持续进步。阅读本文,用时大约15分钟。1、产品渊源早在2003年,我们在企业信息化的过程中,就经常遇到系统对接问题。很多客户的一些老旧软件,不方...

    MySQL 2021年01月13日 54 0
  • 要精通SQL优化?首先要看懂explain关键字

    前言在MySQL中,我们知道加索引能提高查询效率,这基本上算是常识了。但是有时候,我们加了索引还是觉得SQL查询效率低下,我想看看有没有使用到索引,扫描了多少行,表的加载顺序等等,怎么查看呢?其实MySQL自带的SQL分析神器Explain执行计划就能完成以上的事情!Explain有哪些信息先确认一下试验的MySQL版本,这里使用的是5.7.31版本。只需要在SQL语句前加上e...

    MySQL 2021年01月12日 72 0
  • MySQL的日志 - undo log

    前言什么是undo logundo log的作用undo log的存储空间和系统表空间存放在一起独立的undolog表空间undo log的相关参数独立undolog表空间的意义最后前言前面我们介绍了MySQL中的慢查询slow query log,二进制日志binlog,中继日志relay log,重做日志redolog,今天我们来看一下另外一个重要的日志:undo log。...

    MySQL 2021年01月11日 58 0
  • 数据库实用脚本:计算地球上两个坐标点之间的里程

    今天给大家分享计算地球上两个坐标点之间里程不同数据库版本的脚本。1、SQLServer脚本–-计算地球上两个坐标点(经度,纬度)之间距离sql函数 CREATE FUNCTION [dbo].[fnGetDistance](@LatBegin REAL, @LngBegin REAL, @LatEn...

    MySQL 2021年01月11日 75 0
  • 小心避坑:MySQL分页时使用 limit+order by 会出现数据重复问题

    0 问题描述在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的10条数据,limit(10,10)表示列出第二页。但是,当limit遇到order by的时候,可能会出现翻到第二页的时候,竟然又出现了第一页的记录。具体如下:SELECT   `post_title`,   `post_date...

    MySQL 2021年01月11日 81 0
  • 分享一则生产数据库sql优化案例—从98s优化到1.4s

    概述今天主要分享一则生产环境的sql优化案例,仅供参考。问题sql该sql定位还是比较容易的,直接查慢查询语句就直接定位出来了。在测试环境执行需耗时98s,查出数据7108条。SELECT * FROM ( SELECT t.group_code, ter.terminate_begin_date AS terminateBeginDate, ... FR...

    MySQL 2021年01月11日 73 0
  • 数据库:分享四个实用的SQLServer脚本函数,欢迎收藏

    今天给大家分享四个在实际开发中,比较实用的SQLServer脚本函数,希望对大家能有所帮助!1、字符串指定字符分割为list-- 字符串指定字符分割为list CREATE FUNCTION [dbo].[splitl] ( @String VARCHAR(MAX), @Delimiter VARCHAR(MAX) ) RETURNS @temptable TA...

    SQL SERVER 2021年01月08日 86 0
  • CENTOS MYSQL复制下slave严重延迟的分析和处理

    昨晚在生产环境刷数据,执行了一个全局表的update table_test set XK = 'PT' where (XK = '' or XK is null);当时语句没啥问题,测试了下,执行单库的时间在6s左右,没太在意,结果今天发现所有的从库严重延迟,全都卡在这条事务的binlog回放上了。分析原因: 尽管我们使用的是基于组的多线程复制,线程配置为4个,但是他对无序i...

    MySQL 2021年01月06日 68 0
  • 什么是MySQL主从复制读写分离,看这篇就够了

    思维导图前言在很多项目,特别是互联网项目,在使用MySQL时都会采用主从复制、读写分离的架构。为什么要采用主从复制读写分离的架构?如何实现?有什么缺点?让我们带着这些问题开始这段学习之旅吧!为什么使用主从复制、读写分离主从复制、读写分离一般是一起使用的。目的很简单,就是为了提高数据库的并发性能。你想,假设是单机,读写都在一台MySQL上面完成,性能肯定不高。如果有三台MySQL...

    MySQL 2021年01月05日 75 0
  • 什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推

    聚集索引我们先建如下的一张表CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` varchar(10) NOT NULL COMMENT '学生姓名', `age` int(11) NOT NULL COMMENT '学生年龄', PRIMARY K...

    MySQL 2021年01月05日 84 0
  • MySQL的日志 - relay log

    前言relay log的作用如何开启relay log验证relay log开启的效果relay log日志相关参数relay log日志的清除最后前言前面介绍了MySQL的binlog日志相关的知识点,接下里这篇文章中,我们来看一下relaylog的相关内容。relay-log是记录什么的?MySQL用它做什么?relay log的作用Relay log,我们翻译成中文,一般...

    MySQL 2021年01月05日 65 0
  • MySQL为Null会导致5个问题,个个致命

    在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示: “兵马未动粮草先行”,看完了相关的配置之后,我们先来创建一张测试表和一些测试数据。-- 如果存在 person 表先删除 DROP TABLE IF EXISTS person;  -- 创建 p...

    MySQL 2021年01月01日 90 0
  • 线上SQL死锁分析及解决思路

    背景最近线上消费MetaQ的服务频繁报SQL死锁异常,虽然最终可以基于事务自动回滚和逻辑重试保证最终正确性,但若一直放任不管,海量报警日志会掩盖真正需要紧急处理的异常,同时频繁回滚也会降低消费端的吞吐量,个人通过分析线上服务日志、Mysql死锁日志、梳理Mysql在RR级别下的锁机制,找到了真正的问题所在,并对业务处理逻辑进行了优化,特在此整理出来,一方面大家可以互相学习提升,...

    MySQL 2020年12月31日 114 0
  • MySQL中的排序

    在编写SQL 语句时常常会用到 order by 进行排序,那么排序过程是什么样的?为什么有些排序执行比较快,有些排序执行很慢?又该如何去优化?索引排序索引排序指的是在通过索引查询时就完成了排序,从而不需要再单独进行排序,效率高。索引排序是通过联合索引实现的。因为联合索引是从最左边的列开始起按大小顺序进行排序,如下图。比如现在查询条件是 where sex=1 order by...

    MySQL 2020年12月31日 90 0
  • MySQL中varchar类型字段最大长度是多少

    背景字节和字符的区分为什么是varchar(255)而不是(256)varchar字段最大值是多少latin1字符集编码下utf8字符集编码下utf8mb4字符集编码下总结背景你是否知道MySQL中的varchar字段类型最大能够存储多少数据?它的最大长度是多少?为什么有时候定义一个varchar(10)的字段可以存储10个汉字,但是不能存储超过10个长度的字母呢?为什么有时候...

    MySQL 2020年12月30日 75 0
  • MySQL底层的存储结构

    文章目录:写在前面的话InnoDB的存储结构Tablespace常见的表空间SegmentExtentPage什么是off-pageInnoDB的文件存储格式写在前面的话你有没有想过这样一个问题:我们的数据在MySQL中是如何存放的?它是以什么样的组织方式存放在我们磁盘中的?我们知道,数据是存放在表里面的,在表里面是一行一行存在的。那么这一行一行的数据怎么样在磁盘中存放的呢?表...

    MySQL 2020年12月29日 84 0
  • 为什么 MongoDB 选择B树,Mysql 选择B+树?

    本文献给准备面试或者是还在面试的你。常见面试题,送分题目,不拿白不拿。一、B树和B+树的区别很明显,我们想向弄清楚原因就要知道B树和B+树的区别。为了不长篇大论。我们直接给出他们的形式总结他们的特点。1、B树B树是一种自平衡的搜索树,形式很简单:这就是一颗B-树。针对我们这个问题的最核心的特点如下:(1)多路,非二叉树(2)每个节点既保存索引,又保存数据(3)搜索时相当于二分查...

    MySQL 2020年12月26日 94 0
  • Easy Rules 配置文件外置-Mysql

    场景前一篇,介绍了Easy Rules作为Java一款轻量级的规则引擎,使得研发更加注重于纯业务开发,提高开发效率。这一篇,主要是围绕,规则配置数据,外置于数据库Mysql的实现。思路1、Mysql存储新建表t_biz_rule、t_biz_rule_compose分别存储规则定义、规则组合定义2、构建RulesMysql中的Rule、RuleCompose转换成RuleDef...

    MySQL 2020年12月26日 93 0
  • MySQL分组查询后如何获取每组的前N条数据,你会吗?

    “分组查询”可以说是相当常见的SQL查询语句,对于MySQL数据库而言,其实现分组查询的关键字为GROUP BY,而在使用GROUP BY期间一般还会有其他的聚合函数配合使用,比如计数用的COUNT(*),统计数值和用的SUM(*),而本文要介绍的是另一种类型的“分组查询”,即分组查询出来后再查询出每一组的前N条数据。 为了方便诸位理解,还是直接举一个实际的案例吧:存在两个数据...

    MySQL 2020年12月26日 171 0