202010-09 MySQL InnoDB表空间加密示例详解 前言从MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密。此功能为物理表空间数据文件提供静态加密。该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系统时加密,加密用的是AES算法,而其解密是在从文件读到内存中时进行。1配置加密插件1.1修改配置文件在mysql配置文件【mysqld】x项中添加如下内容plugin_dir=/usr/local/mysql5.7/lib/mysql/plugin#插件路径,根据实际情况修改early-plu... 继续阅读 >
202010-09 利用MySQL空间函数实现位置打卡的完整步骤 前言项目需求是跟用户当前位置判断是否在给定的地理位置范围内,符合位置限制才可以打卡,其中的位置范围是一个或多个不规则的多边形。如下图,判断用户是在清华还是北大。图形获取区域坐标#因为项目前端使用微信小程序的wx.getLocation获取地理位置,为了坐标的一致性,后台选取区域范围采用了腾讯地图的地理位置服务,在应用工具->绘制几何图形里,提供了点、线、多边形和圆形可以方便的选取看这里。在官方提供的示例上稍加改动... 继续阅读 >
202010-09 详细分析MySQL主从复制 前言:在MySQL中,主从架构应该是最基础、最常用的一种架构了。后续的读写分离、多活高可用架构等大多都依赖于主从复制。主从复制也是我们学习MySQL过程中必不可少的一部分,关于主从复制的文章有很多,笔者也来凑凑热闹,写写这方面的内容吧,同时分享下自己的经验和方法。1.主从复制简介及原理主从复制(也称AB复制)是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服... 继续阅读 >
202010-09 MySQL百万级数据量分页查询方法及其优化建议 数据库SQL优化是老生常谈的问题,在面对百万级数据量的分页查询,又有什么好的优化建议呢?下面将列举了一些常用的方法,供大家参考学习!方法1:直接使用数据库提供的SQL语句语句样式:MySQL中,可用如下方法:SELECT*FROM表名称LIMITM,N适应场景:适用于数据量较少的情况(元组百/千级)原因/缺点:全表扫描,速度会很慢且有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3).Limit限制的是从结果集的M... 继续阅读 >
202010-09 MySQL数据库升级的一些"陷阱" 对于商业数据库而言,数据库升级是一个优先级很高的事情,有版本升级路线图,有相应的补丁,而且对于方案还有一系列的演练,显然是一场硬仗。而在MySQL方向上,升级这件事情就被淡化了许多,好像只能证明它的存在而已,当然正是由于这种不重视,也让我今天走了不少弯路。一般来说,升级MySQL有两类可行方案,一类是直接升级数据字典,在本机完成,整个过程会有离线操作,会对业务有中断,第二种是通过高可用切换平滑实现,原理是搭... 继续阅读 >
202010-09 Oracle和MySQL的数据导入为何差别这么大 经常会有一些朋友咨询我一些数据库的问题,我注意到一个很有意思的现象,凡是数据导入的问题,基本上都是Oracle类的,MySQL类的问题脑子里想了下竟然一次都没有。我禁不住开始思考这个未曾注意的问题:为什么Oracle导入数据会碰到很多的问题?我们来梳理一下这个问题,分别从导出导入的方式来聊聊。首先Oracle导出的文件格式就没打算让你拿来即用,导出文件叫做dump,换句话说可以理解这是一个二进制文件。当然实际上这个文件还是有... 继续阅读 >
202010-09 简述MySql四种事务隔离级别 隔离级别:隔离性其实比想象的要复杂。在SQL标准中定义了四种隔离级别,每一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。较低级别的隔离通常可以执行更高的并发,系统的开销也更低。下面简单地介绍一下四种隔离级别。1.READUNCOMMITTED(未提交读)在READUNCOMMITTED级别,事务中的修改,即使没有提交,对其他事务也都是可见的。事务可以读取未提交的数据,这也被称为脏读(DirtyRead).这个级别会导致很... 继续阅读 >
202010-09 MySQL优化SQL语句的技巧 在面对不够优化、或者性能极差的SQL语句时,我们通常的想法是将重构这个SQL语句,让其查询的结果集和原来保持一样,并且希望SQL性能得以提升。而在重构SQL时,一般都有一定方法技巧可供参考,本文将介绍如何通过这些技巧方法来重构SQL。一、分解SQL有时候对于一个复杂SQL,我们首先想到的是是否需要将一个复杂SQL分解成多个简单SQL,来完成相同业务处理结果。在以前,大家总是强调需要数据库层来完成尽可能的工作,这也就不难理解... 继续阅读 >
202010-09 MySQL优化SQL语句的技巧 在面对不够优化、或者性能极差的SQL语句时,我们通常的想法是将重构这个SQL语句,让其查询的结果集和原来保持一样,并且希望SQL性能得以提升。而在重构SQL时,一般都有一定方法技巧可供参考,本文将介绍如何通过这些技巧方法来重构SQL。一、分解SQL有时候对于一个复杂SQL,我们首先想到的是是否需要将一个复杂SQL分解成多个简单SQL,来完成相同业务处理结果。在以前,大家总是强调需要数据库层来完成尽可能的工作,这也就不难理解... 继续阅读 >
202010-09 MySQL如何优化查询速度 前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必不可少的。但这些还完全不够,还需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再合适,也是无法实现高性能的。谈到MySQL性能优化,查询优化作为优化的源头,它也是最能体现一个系统是否更快。本章以及接下来的几章将会着重讲解关于查询性能优化的内容,从中会介绍一些查询优化的技巧,帮助大家更深刻地理解MyS... 继续阅读 >
202010-09 MySQL性能优化之如何高效正确的使用索引 实践是检验真理的唯一途径,本篇只是站在索引使用的全局来定位的,你只需要通读全篇并结合具体的例子,或回忆以往使用过的地方,对整体有个全面认识,并理解索引是如何工作的,就可以了。在后续使用索引,或者优化索引时,可以从这些方面出发,进一步来加深对索引正确高效的使用。一、索引失效索引失效,是一个老生常谈的话题了。只要提到数据库优化、使用索引,都能一口气说出一大堆索引失效的场景,什么不能用、什么不该用这类的... 继续阅读 >
202010-09 MySQL单表恢复的步骤 正休息的时候一个电话将我的睡意完全打散,“开发童鞋写updateSQL的时候忘了加where条件了”,相信每一个DBA同学听到这个消息的时候都有骂街的冲动吧。万幸只是单表写花了,而不是哪位大神在DB里面droptable玩。虽然已经很久没进行单表恢复了,但是还好步骤都印在脑海中,没有出问题的就恢复完了。言归正传,记录一下单表恢复的步骤和关键点,提醒自己也提醒大家。第一步:找一台性能比较高的服务器作为还原机,从备... 继续阅读 >
202010-09 MySQL如何创建视图 基本语法可以使用CREATEVIEW语句来创建视图。语法格式如下:CREATEVIEW<视图名>AS<SELECT语句>语法说明如下。<视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。<SELECT语句>:指定创建视图的SELECT语句,可用于查询多个基础表或源视图。对于创建视图中的SELECT语句的指定存在以下限制:用户除了拥有CREATEVIEW权限外,还具有操作中涉及的基础表和其他视图的相关权限。SE... 继续阅读 >
202010-09 MySQL数据库连接异常汇总(值得收藏) 在Centos上部署项目发现一个奇怪的问题,数据库连接一直抛异常。于是花了两个小时搜了各种数据库连接异常导致的原因,最终问题得以解决。同时,把解决过程中搜集到的异常信息汇总一下,当大家遇到类似的问题时,给大家以思路。必须珍藏。问题现象先来说说我遇到的问题。项目中遇到的问题很奇怪,在Centos上安装了Mysql数据库,项目使用的是SpringBoot。项目在本地启动连接服务器数据库正常、本地数据库客户端连接服务器数据库正常... 继续阅读 >
202010-09 带你了解MySQL中的事件调度器EVENT MySQL中的事件调度器,EVENT,也叫定时任务,类似于Unixcrontab或Windows任务调度程序。EVENT由其名称和所在的schema唯一标识。EVENT根据计划执行特定操作。操作由SQL语句组成,语句可以是BEGIN…END语句块。EVENT可以是一次性的,也可以是重复性的。一次性EVENT只执行一次,周期性EVENT以固定的间隔重复其操作,并且可以为周期性EVENT指定开始日期和时间、结束日期和时间。(默认情况下,定期EVENT在创建后立即开始,并无限期地... 继续阅读 >
202010-09 Centos7 安装 Mysql8教程 Mysql8新特性:Mysql从5.x版本直接跳跃到8.x,我个人是这么看的:MySQL5.5->MySQL5MySQL5.6->MySQL6MySQL5.7->MySQL7MySQL8.0->MySQL8当然也有可能是Mysql6、7内部难产了-_-,自从被Oracle收购后,活力依旧在,mysql8有以下新特性:MySQL文档存储默认utf8mb4编码JSON增强CTEs(译者注:CommonTableExpresssions公共表格表达式)窗口函数降序索引更好的优化器消费模型MySQL服务器组件GIS... 继续阅读 >