• 数据库敏感数据加密实现方案

    背景数据库明文存储,诸如内部高权用户或侵入数据库服务器的黑客,都可以毫无阻碍地访问数据库的重要数据,一些敏感数据在存储期间的机密性并不能得到有效的保障。根据信息安全的目标,需要对应用生产数据加密,达到满足安全要求,预防存储层明文泄密,实现自主可控安全。总体思路数据库层存储敏感字段为加密,展现层传递应用层为明文传输,应用层接收到明文数据,通过加密应用实现数据加密,实现数据加密存储...

    MySQL 2021年11月18日 2535 0
  • MySQL数据库,表结构设计的五个维度

    一、数据场景1、表结构简介任何工具类的东西都是为了解决某个场景下的问题,比如Redis缓存系统热点数据,ClickHouse解决海量数据的实时分析,MySQL关系型数据库存储结构化数据。数据的存储则需要设计对应的表结构,清楚的表结构,有助于快速开发业务,和理解系统。表结构的设计通常从下面几个方面考虑:业务场景、设计规范、表结构、字段属性、数据管理。2、用户场景例如存储用户基础信...

    MySQL 2021年09月22日 2320 0
  • 菜鸟积分系统稳定性建设 - 分库分表&百亿级数据迁移

    一 前言拆库&数据迁移说白了,考验的不是一个人的技术功底,而是一个人干活的细致程度,以及抗压能力。无论在哪个公司,数据库迁移的机会都不会太多,因此,我也是非常珍惜这次历练,用阿里的一句老话来说就是 “因人成事,借事修人”。写这篇文章的目的主要是自己进行一个总结,也希望能给需要的同学们一些参考。二 背景在星爷的《大话西游》中有一句非常出名的台词:“曾经有一份真挚的感情摆在...

    MySQL 2021年09月22日 2073 0
  • 我是如何设计短域名服务的,欢迎大家吐槽

    今天刚收到一个短信,里面就有一个短域名。这个短域名的目的很简单,为了在发短信的时候能省点钱,并且让用户体验不要那么糟糕,动不动发一个几百个字符的URL,小白用户一脸懵逼。其实短域名的原理非常简单,当你访问这个段域名的时候,短域名服务器会给你重定向到到真实的URL,浏览器会自动跳转到这个真实的URL。那么如何设计这样一个短域名服务呢?下面谈谈我个人的设想。第一个需要解决的问题,是...

    MySQL 2021年09月14日 2264 0
  • MySQL数据库大森林:B树、B+树、二叉树、红黑树

    1、二叉树:每个节点最多只有两个子树的树结构2、B树和B+树2.1、区别1)B+树只有叶子节点会存储指针,B树所有节点都带2)B+树叶子节点存储了所有数据,B树在内部节点出现的数据不会出现在叶子节点3)B+树所有叶子节点都是通过指针连在一起,B树不是2.2、B+树优点1)内部节点不存储指针,使得一个内部节点中可以容纳更多的数据2)叶子节点通过指针连在一起范围扫描很方便,B树就要...

    MySQL 2021年09月01日 1847 0
  • 高并发,你真的理解透彻了吗?

    高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。在过往的面试中,如果候选人做过高并发的项目,我通常会让对方谈谈对于高并发的理解,但是能系统性地回答好此问题的人并不多。大概分成这样几类:1、对数据化的指标没有概念:不清楚选择...

    MySQL 2021年08月31日 1976 0
  • 基于 Mysql 实现一个简易版搜索引擎

    前言前段时间,因为项目需求,需要根据关键词搜索聊天记录,这不就是一个搜索引擎的功能吗? 于是我第一时间想到的就是 ElasticSearch 分布式搜索引擎,但是由于一些原因,公司的服务器资源比较紧张,没有额外的机器去部署一套 ElasticSearch 服务,而且上线时间也比较紧张,数据量也不大,然后就想到了 Mysql 的全文索引。简介其实 Mysql 很早就支持全文索引了...

    MySQL 2021年08月31日 1895 0
  • MySQL 时间类型 datetime、bigint、timestamp选哪个?很多人答错了

    数据库中可以用datetime、bigint、timestamp来表示时间,那么选择什么类型来存储时间比较合适呢?前期数据准备通过程序往数据库插入50w数据数据表:CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `time_date` datetime NOT NULL, `time_time...

    MySQL 2021年08月31日 1611 0
  • 面试官:你说说一条更新SQL的执行过程?

    在上一篇《面试官:你说说一条查询SQL的执行过程?》中描述了Mysql的架构分层,通过解析器、优化器和执行引擎完成一条SQL查询的过程,那这一篇续上继续说明一条更新SQL的执行过程。对于一个SQL语句的更新来说,前面的流程都可以说类似的,通过解析器进行语法分析,优化器优化,执行引擎去执行,这个都没有什么问题,重点在于多了一点东西,那就是redo_log、undo_log和bin...

    MySQL 2021年08月20日 1511 0
  • Ubuntu搭建Mysql+Keepalived高可用(双主热备)

    Mysql5.5双机热备实现方案安装两台Mysql安装Mysql5.5sudo apt-get update apt-get install aptitude aptitude install mysql-server-5.5 或 sudo apt-cache search mariadb-server apt-get install -y mariadb-server-5....

    MySQL 2021年08月16日 1574 0
  • 线上MySQL读写分离,出现写完读不到问题如何解决

    今天我们来详细了解一下主从同步延迟时读写分离发生写后读不到的问题,依次讲解问题出现的原因,解决策略以及 Sharding-jdbc、MyCat 和 MaxScale 等开源数据库中间件具体的实现方案。写后读不到问题MySQL 经典的一主两从三节点架构是大多数创业公司初期使用的主流数据存储方案之一,主节点处理写操作,两个从节点处理读操作,分摊了主库的压力。但是,有时候可能会遇到执...

    MySQL 2021年08月11日 1456 0
  • MySQL索引是怎么支撑千万级表的快速查找?

    前言在 MySQL 官方提到,改善操作性能的最佳方法 SELECT 在查询中测试的一个或多个列上创建索引。索引条目的作用类似于指向表行的指针,从而使查询可以快速确定哪些行与WHERE子句中的条件匹配,并检索这些行的其他列值。所有MySQL数据类型都可以建立索引。尽管可能会为查询中使用的每个可能的列创建索引,但不必要的索引会浪费空间和时间,使MySQL难以确定要使用的索引。索引还...

    MySQL 2021年07月28日 2169 0
  • MySQL 深入学习总结

    1.数据库基础1.1 MySQL 架构和其它数据库相比,MySQL 有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎,各层介绍:1.1.1 连接层最上层是一些客户端和连接服务,包含本地 sock 通信和大多数基于...

    MySQL 2021年07月27日 1383 0
  • MySQL常用的4种主从复制架构

    目录一主多从复制架构多级复制架构双主(Dual Master)复制架构多源(Multi-Source)复制架构如何优化主从延迟问题?复制的4中常见架构有一主多从复制架构、多级复制架构、双主(Dual Master)复制架构和多源(Multi-Source)复制架构。一主多从复制架构在主库读取请求压力非常大的场景下,可以通过配置一主多从复制架构实现读写分离,把大量的对实时性要求不...

    MySQL 2021年07月26日 1245 0
  • MySQL不同版本多实例部署

    1 背景介绍我们在数据库运维的过程中.会遇到不同版本的数据库部署需求.同时测试环境数据库需求更是不同.有时为了节省资源.我们需要进行多实例的部署.或者在我们自己学习的过程中也需要进行多实例的部署..比如搭建各种MySQL的集群(mha,PXC,Xenon).这篇文章我将介绍多版本多实例的部署.2 部署介绍多版本多实例版本介绍:下载对应版本MySQL2.1 软件下载下载地址:ht...

    MySQL 2021年07月05日 1398 0
  • DorisDB简介

    DorisDB简介本文通过对DorisDB进行概要描述,从产品简介、发展历程、架构介绍、产品特性、使用场景、产品版本、横向压测对比、用户&案例、后续发展几个层面进行简要说明,部分内容引用。因接触doris时间较短,文中错误,欢迎勘正。1. 产品简介 一直以来,一众大厂分布式数据库产品层出不穷,唯有BAT中的百度,一直没有什么大的动作。然而,我还是错了,先给百度道个歉。只...

    MySQL 2021年07月02日 19774 2
  • centos7 安装 Mysql 5.7.27,详细完整教程

    1. 下载 MySQL yum包wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm2.安装MySQL源rpm -Uvh mysql57-community-release-el7-10.noarch.rpm3.安装MySQL服务端,需要等待一些时间yum install -y mysql-...

    MySQL 2021年04月21日 1720 0
  • Navicat用久了试试这个炫酷的mysql连接工具,如丝滑般柔顺

    背景web开发者都知道,数据对我们来说是最重要的,所有的curd都是针对于数据库。连接MySQL我们通常都是用Navicat,但是每次用都需要破解,并且感觉经常卡顿,并且提示功能感觉不准确,有没有更好的工具,我们可以试下HeidiSQL。推荐理由1 完全开源免费,不存在收费版本(不开源不推荐)2 查询速度很快,不会卡顿,Navicat查询比较卡顿3 界面炫酷(关键字高亮,记录高...

    MySQL 2021年04月12日 1805 0
  • 并发的时候分布式锁setnx细节

    如果出现网络延迟的情况下,多个请求阻塞,那么恶意攻击就可以全部请求领取接口成功,而针对这种做法,我们使用 setnx 来解决,确保只有一个请求可以进入接口请求。public String receiveGitf(int activityId,int giftId,String uid){ // isExist判断活动是否存在,内部包括redis和数据库请求,省略...

    MySQL 2021年03月19日 1594 0
  • 数据库事务锁详解

    前言上篇说到数据库事务中的特性ACID和4个隔离级别,今儿就来看一下事务中的锁。MySQL中的锁锁是MySQL在服务器层和存储引擎层的并发控制,锁可以保证数据并发访问的一致性、有效性;锁冲突也是影响数据库并发访问性能的一个重要因素MySQL有三种级别的锁:「表级锁、行级锁、页级锁」表级锁行级锁业级锁特点开销小、加锁快开销大、加锁慢加锁时间介于其余两者之间是否会死锁否是是并发度粒...

    MySQL 2021年03月18日 1763 0
  • 分库分表中间件的高可用实践

    分库分表中间件的高可用实践前言分库分表中间件在我们一年多的锤炼下,基本解决了可用性和高性能的问题(只能说基本,肯定还有隐藏的坑要填),问题自然而然的就聚焦于高可用。本文就阐述了我们在这方面做出的一些工作。哪些高可用的问题作为一个无状态的中间件,高可用问题并没有那么困难。但是尽量减少不可用期间的流量损失,还是需要一定的工作的。这些流量损失主要分布在:(1)某台中间件所在的物理机突...

    MySQL 2021年03月12日 1618 0
  • CentOS7安装MySQL8.0图文教程

    登录主机,然后进行下载第一步:在mysql官网下载源文件第二步:Select Operating System: 选择 Red Hat ,CentOS 是基于红帽的,Select OS Version: 选择 linux 7第三步:选择 RPM Bundle 点击 Download第四步:点击 No thanks, just start my download. 进行下载第五步...

    MySQL 2021年03月12日 1860 0
  • explain查看执行计划

    在MySQL性能调优的时候explain是必须要使用的关键字,它的作用是可以查看sql语句的执行信息,包括表的读取顺序,应用到的索引等信息。用法:explain + sql语句。本篇我们先熟悉explain的内容,为下篇学习索引奠定基础。explain内容查看user全表查询的执行计划:mysql> explain select * from user; idid表示se...

    MySQL 2021年03月10日 1545 0
  • 线上MySQL读写分离,出现写完读不到问题如何解决?

    今天我们来详细了解一下主从同步延迟时读写分离发生写后读不到的问题,依次讲解问题出现的原因,解决策略以及 Sharding-jdbc、MyCat 和 MaxScale 等开源数据库中间件具体的实现方案。一、写后读不到问题MySQL 经典的一主两从三节点架构是大多数创业公司初期使用的主流数据存储方案之一,主节点处理写操作,两个从节点处理读操作,分摊了主库的压力。但是,有时候可能会遇...

    MySQL 2021年03月09日 1479 0
  • 「MySQL笔记」left join-on-and 与 left join-on-where 的区别

    1. 摘要关于这两种写法的重要知识点摘要如下:left-join 时,即使有相同的查询条件,二者的查询结果集也不同,原因是优先级导致的,on 的优先级比 where 高on-and 是进行韦恩运算连接生成临时表时使用的条件where 是全部连接完生成临时表后,再根据条件过滤on 优先级比 where 高,因此,理论上 on-and 写法执行效率比 on-where 高,速度更快...

    MySQL 2021年03月08日 1552 0
  • Oracle与Mysql区别

    1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。 2. Oracle支持大并发,大访问量,是OLTP最好的工具。 3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。...

    MySQL 2021年03月08日 1606 0
  • 为什么delete表数据,磁盘空间却还是被占用

    最近有个上位机获取下位机上报数据的项目,由于上报频率比较频繁且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录。明明已经执行了delete,可表文件的大小却没减小,令人费解项目中使用Mysql作为数据库,对于表来说,一般为表结构和表数据。表结构占用空间都是比较小的,一般都是表数据占用的空间。当我们使用 delete删除数据时,...

    MySQL 2021年03月06日 1589 0
  • MySQL:按照ID分组日期时间求和,过滤重叠时间

    原始数据SELECT d.waybill_no, @group_row:=CASE WHEN @parent_code=picked_by THEN @group_row+1 ELSE 1 END AS id, @parent_code1:=picked_by AS picked_by1, MIN(spd.picked_date) start_time, MAX(spd.pic...

    MySQL 2021年03月05日 1680 0
  • 海量数据写入——万级并发的订单系统如何分库?

    一定要分表分库吗?当然不一定。虽然很多互联网公司的体量很大、用户非常多,但你千万不要被这些现象迷惑了。实际上,90% 以上的系统能够发展到上百万、上千万数据量已经很不错了。对于千万的数据量,开源的 MySQL 都可以很好地应对,更别说一些商业数据库了。另外,当数据增长到一定量级后,可以在业务层面做一些处理。比如根据业务特点,对无效数据、软删除数据,以及业务上不会再查询的数据进行...

    MySQL 2021年03月04日 1593 0
  • mysql-DCL语句与帮助的使用

    DCL语句DCL语句主要是DBA用来管理系统中的对象权限时使用,一般的开发人员很少使用。下面通过一个例子简单说明一下。创建一个数据库用户z1,具有对sakila数据库中所有表的SELECT/INSERT 权限,并且密码为123。grant select,insert on sakila.* to ‘z1’@’localhost‘indentified by ‘123’;收回z1...

    MySQL 2021年03月03日 1431 0