• 烹饪MySQL8.0 Cluster这道菜

    此文将带领大家接触MySQL8.0版本,并且部署Mysql Cluster。香。香。香。一:写在前面--MySQL8.0的改进1:性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在以下方面带来了更好的性能:读/写工作负载、IO 密集型工作负载、以及高竞争("hot spot"热点竞争问题)工作负载。MySQL8.0、MySQL5.7、M...

    MySQL 2020年06月12日 202 0
  • Redis 到底是怎么实现“附近的人”这个功能的呢?

    Redis 到底是怎么实现“附近的人”这个功能的呢?前言:针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG、MySQL和MongoDB等多种DB的空间索引进行实现。而Redis另辟蹊径,结合其有序队列zset以及geohash编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度。要提供完整的“附近的人”服务,最基...

    Redis 2020年05月12日 175 0
  • 一款能快速批量处理SQL文本的软件:NimbleText

    前言做为一个后台程序员,在日常工作中,经常会遇到领导扔给一个Excel,让把 Excel 的数据导入数据库的情况。如果只是少量数据,几条甚至说几十条,还可以勉强地组织一下 insert 插入语句;但大多数情况下,都是成百上千行的数据,若要是再手动一条一条组织 insert 插入语句,岂不得累死。于是乎,为了减少重复工作,提高工作效率,小编找到了一款能快速批量处理SQL文本的软件...

    MySQL 2020年05月08日 242 0
  • 6步带你看懂MySQL 整体架构

    MySQL 在整体架构上分为 Server 层和存储引擎层。其中 Server 层,包括连接器、查询缓存、分析器、优化器、执行器等,存储过程、触发器、视图和内置函数都在这层实现。数据引擎层负责数据的存储和提取,如 InnoDB、MyISAM、Memory 等引擎。在客户端连接到 Server 层后,Server 会调用数据引擎提供的接口,进行数据的变更。连接器负责和客户端建立连...

    MySQL 2020年05月05日 166 0
  • 借助Redis完成延时任务

    相信我们或多或少的会遇到类似下面这样的需求:第三方给了一批数据给我们处理,我们处理好之后就通知他们处理结果。大概就是下面这个图说的。本来在处理完数据之后,我们就会马上把处理结果返回给对方,但是对方要求我们处理速度不能过快,要有一种人为处理的效果。换句话就是说,就算是处理好了,也要晚一点再执行通知操作。这就是一个典型的延时任务。延时,那还不简单,执行完之后,让它Sleep一下就好...

    Redis 2020年05月04日 163 0
  • Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?

    Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。所以在使用此版本之前,建议各位开发者先进行深入的测试再考虑投产,毕竟生产坏境无小事。好了,回到本文的重点,接下来我们来重点看下 Redis 6.0.1 给...

    Redis 2020年05月03日 185 0
  • MySQL用户及权限知识梳理

    一、账号用户账号MySQL用户账号组成: 'USER'@'HOST'USER: 用户名。HOST: 来源主机地址,IP、主机名、通配符(%和_)。创建用户账号:mysql> CREATE USER 'USER'@'HOST';mysql> CREATE USER 'USER'@'HOST' IDENTIFIED BY 'PWD';用户重命名:mysql> RE...

    MySQL 2020年04月26日 859 0
  • 为什么MongoDB使用B-Tree,Mysql使用B+Tree ?

    除了 B+ 树,你可能还听说过 B 树、 B- 树,实际上, B- 树就是 B 树,英文翻译都是 B-Tree ,这里的 “-” 并不是相对 B+ 树中的 “+” ,而只是一个连接符。而 B 树实际上是低级版的B+ 树,或者说 B+ 树是 B 树的改进版。B+ treeB+ tree 实际上是一颗m叉平衡查找树(不是二叉树)平衡查找树定义:树中任意一个节点的左右子树的高度相差不...

    MySQL 2020年04月26日 167 0
  • mysql数据库如何进行备份和恢复

    一、确保mysql开启了binlog日志功能在/etc/my.cnf文件里的[mysqld]区块添加:#这个是存储的位置为mysql配置文件的位置log-bin=mysql-bin然后重启mysql服务生效二、创建数据库先创建一个ops数据库create database ops;use ops;创建一个customers表并写上表结构create table customer...

    MySQL 2020年04月26日 150 0
  • MySQL的binlog知识梳理

    1、binlog概念:binlog是一个二进制格式的文件,用于记录“修改数据或可能引起数据变更”的SQL语句(查询的SQL不会记录)。2、binlog功能:(1)恢复: 利用binlog日志恢复数据库数据。(2)复制: 主从架构通过binlog同步数据。(3)审计: 可以用binlog中的信息进行审计,判断是否有对数据库进行注入攻击。3、binlog的记录格式:(1)state...

    MySQL 2020年04月25日 127 0
  • 分库、分表、分区的区别

    一.分分合合说过很多次,不要拘泥于某一个技术的一点,技术是相通的。重要的是编程思想,思想是最重要的。当数据量大的时候,需要具有分的思想去细化粒度。当数据量太碎片的时候,需要具有合的思想来粗化粒度。1.1 分很多技术都运用了分的编程思想,这里来举几个例子,这些都是分的思想集中式服务发展到分布式服务从Collections.synchronizedMap(x)到1.7Concurr...

    MySQL 2020年04月22日 113 0
  • MySQL性能优化必知:长连接、短连接、连接池

    当数据库服务器和客户端位于不同的主机时,就需要建立网络连接来进行通信。客户端必须使用数据库连接来发送命令和接收应答、数据。通过提供给客户端数据库的驱动指定连接字符串后,客户端就可以和数据库建立连接了。可以查阅程序语言手册来获知通过何种方式使用短连接、长连接。1. 短连接短连接是指程序和数据库通信时需要建立连接,执行操作后,连接关闭。短连接简单来说就是每一次操作数据库,都要打开和...

    MySQL 2020年04月21日 149 0
  • Redis从入门到精通,至少要看看这篇

    常用的 SQL 数据库的数据都是存在磁盘中的,虽然在数据库底层也做了对应的缓存来减少数据库的 IO 压力。图片来自 Pexels由于数据库的缓存一般是针对查询的内容,而且粒度也比较小,一般只有表中的数据没有发生变动的时候,数据库的缓存才会产生作用。但这并不能减少业务逻辑对数据库的增删改操作的 IO 压力,因此缓存技术应运而生,该技术实现了对热点数据的高速缓存,可以大大缓解后端数...

    Redis 2020年04月20日 124 0
  • mysql读写分离原理及配置

    1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送...

    MySQL 2020年04月20日 823 0
  • MySQL大表优化方案——从单表优化到分表分库

    单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上U...

    MySQL 2020年04月19日 383 0
  • Sprinig Boot + Redis 实现接口幂等性,写得太好了

    一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处理重复回调普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次 等等二、常见解决方案唯一索引 -- 防止新增脏数据token机制 -- 防止页面重复提交悲观锁...

    Redis 2020年04月19日 185 0
  • 了解数据库类型及MySQL数据库常用命令行

    一、数据库1、数据库DataBase(DB):存储数据的仓库。2、数据库的分类(1) 关系型数据库(sql数据库):中型:mysql(端口号3306)、sql server大型:Oracle(端口号1521)(2) 非关系型数据库(no-sql数据库)MongoDB、Redis3、mysql软件:Sql yog:数据库客户端工具(图形用户界面工具)方便操作数据库。类似的工具:N...

    MySQL 2020年04月19日 106 0
  • 很用心的为你写了 9 道 MySQL 面试题

    MySQL 一直是本人很薄弱的部分,后面会多输出 MySQL 的文章贡献给大家,毕竟 MySQL 涉及到数据存储、锁、磁盘寻道、分页等操作系统概念,而且互联网对 MySQL 的注重程度是不言而喻的,后面要加紧对 MySQL 的研究。写的如果不好,还请大家见谅。非关系型数据库和关系型数据库区别,优势比较非关系型数据库(感觉翻译不是很准确)称为 NoSQL,也就是 Not Only...

    MySQL 2020年04月18日 104 0
  • 一份完整的 MySQL 开发规范,进大厂必看

    一、数据库命令规范1、所有数据库对象名称必须使用小写字母并用下划线分割2、所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)3、数据库对象的命名要能做到见名识意,并且最后不要超过32个字符4、临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀5、所有存储相同数据的列名和列类型必须一致(...

    MySQL 2020年04月18日 123 0
  • MySql:阿里云Yum安装MySql 8.0,并配置用户及权限,极简操作!

    这是一篇结合官网文档,实际操作的图文笔记Yum命令 安装MySql下载MySql Yum存储库,选择对应的版本(以Centos 7 为例 选择EL7的)以wget命令为例(在local下新建一个mysql文件夹,将rpm文件下载到该路径下)#进入local文件夹cd /usr/local/#创建mysql文件夹(下载到其他地方也可以,下载到这里是为了方便管理)mkdir mys...

    MySQL 2020年04月17日 159 0
  • Mysql -乐观锁和悲观锁

    悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中, 将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了 加锁机制,也无法保证外部系统不会修改数据)。使用场景举例:以MySQL I...

    MySQL 2020年04月17日 110 0
  • mysql如何捕捉慢日志查询

    慢日志查询日志查询超过变量 long_query_time指定时间值的为慢查询,但是查询获取锁(包括锁等待)的时间不计入查询时间内,mysql 记录慢查询日志是在查询执行完毕且已经完全释放锁之后才记录,因为慢查询日志的记录顺序和执行sql的顺序可能不一致,注意 mysql5.1之后就支持微秒级的慢查询,对于dba而言一个查询0.5秒和运行0.05秒是非常不同的,前者可能索引使用...

    MySQL 2020年04月15日 122 0
  • MySQL 8.0来了,大势所趋,逆之者亡

    MySQL 8.0它lei了,大势浩浩荡荡,谁也挡不住MySQL被Sun收购后,搞了个过渡的6.0版本,没多久就下线了(有一次居然听说有人在线上用6.0版本,我惊得下巴都掉了)。被Oracle收购后,终于迎来了像样的5.6版本,之后就是5.7、8.0版本。这么看来,Sun的衰亡不无道理。P.S,上面说了6.0版本号已被用过,7.x系列版本专用于NDB Cluster,因而新版本...

    MySQL 2020年04月15日 885 0
  • 手把手教你分析Mysql死锁问题

    前言前几天跟一位朋友分析了一个死锁问题,所以有了这篇图文详细的博文,哈哈~发生死锁了,如何排查和解决呢?本文将跟你一起探讨这个问题准备好数据环境模拟死锁案发分析死锁日志分析死锁结果环境准备数据库隔离级别:mysql> select @@tx_isolation;+-----------------+| @@tx_isolation |+-----------------...

    MySQL 2020年04月14日 138 0
  • Docker常用镜像安装:MySql Redis GitLab maven私服等

    学习Docker的过程就是安装各种镜像、环境搭建的过程。下面是常用Docker公共镜像的安装方式,记录下来,环境收藏~一、安装Mysql1.创建mysql下载镜像:docker pull centos/mysql-57-centos7创建容器:docker run -di --name=mysql --restart=always -p 3306:3306 -e MYSQL_R...

    MySQL 2020年04月13日 176 0
  • 非常重要的mysql数据库定时备份!

    数据是非常重要的,所以数据备份必不可少!比如受到攻击,或者人为误操作时,备份数据就派上用场,及时恢复数据,将影响降到最低。下面以mysql为例,利用mysqldump(mysql自带工具)工具进行备份,实现每天整点定时备份数据库(定时是利用linux的crontab,可以自己配置任意时间),并且只保留7天(时间可配置)假设数据库名为:test第一步.创建脚本文件夹mkdir /...

    MySQL 2020年04月12日 176 0
  • 程序员经典面试题,Mysql并发读写的时候,都是需要加锁的么?

    这是一道经典的程序员面试题,在Mysql中,如果有多个事务同时访问同一行数据,那么需要加锁么?我们都知道,在Mysql中有行锁,如果有多个事务同时修改同一行数据,那么需要加锁来防止并发问题。那么,如果有事务修改数据,又有事务读取这个数据,需要加锁么?答案是不一定,事实上,Mysql的很多数据库引擎为了提升并发性能,都做了多版本并发控制,也就是我们常说的MVCC,事实上,除了My...

    MySQL 2020年04月12日 114 0
  • 为什么Redis 单线程却能支撑高并发?

    最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操...

    Redis 2020年04月11日 127 0
  • mysql5.7 使用XtraBackup2.4 全量备份还原

    下载 XtraBackupmysql5.7我们使用 XtraBackUp2.4版本 下面是网址下载文件为 percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm进行安装预先安装 libev perl-DBD-MySQL perl-Digest-MD5yum -y install libevyum -y install perl-DBD-MySQ...

    MySQL 2020年04月11日 918 0
  • MySQL默认值选型是空,还是 NULL-爱可生

    如果对一个字段没有过多要求,是使用“”还是使用 NULL,一直是个让人困惑的问题。即使有前人留下的开发规范,但是能说清原因的也没有几个。NULL 是“”吗?在辨别 NULL 是不是空的这个问题上,感觉就像是在证明 1 + 1 是不是等于 2。在 MySQL 中的 NULL 是一种特殊的数据。一个字段是否允许为 NULL,字段默认值是否为 NULL。主要有如下几种情况:字段类型表...

    MySQL 2020年04月11日 251 0