MySQL
文章平均质量分 66
不曾听说
一切伟大的行动和思想,都有一个微不足道的开始。
展开
-
[docker]Docker安装MYSQL并挂载外部配置和数据
文章目录下载最新版mysql创建挂载目录创建my.cnf启动容器参数解释下载最新版mysql[root@iZwz9bpj7oo7xbzsrq86kmZ app]# docker pull mysql:latestlatest: Pulling from library/mysqlb380bbd43752: Pull complete f23cbf2ecc5d: Pull complete 30cfc6c29c0a: Pull complete b38609286cbe: Pull comple原创 2021-11-15 15:45:09 · 1572 阅读 · 0 评论 -
[MySQL]聊一聊索引
文章目录索引的选择离散性联合索引最左匹配原则索引的选择例如,此处有一个User表,表的字段及类型如下表所示:字段类型idintnamevarchar(32)ageintgendertinyintmobilevarchar(20)假设创建单列索引,以哪列作为索引比较合适?离散性count distinct col :count col即当前列去除重复的数据的个数:当前列的总数,该值越大代表离散性越好。举个例子,如果在gender列上面创原创 2021-04-11 15:59:11 · 166 阅读 · 0 评论 -
[MySQL]InnoDB引擎和MyIsam引擎索引存储结构
文章目录MyIsam主键索引非主键索引InnoDB主键索引非主键索引聚集索引与稀疏索引聚集索引稀疏索引MyIsam主键索引①user.myi文件中存储的是USER表的主键索引结构,最终的叶子节点中存储的是数据在磁盘中的地址;②user.myd文件中存储的是磁盘地址对应的数据信息。非主键索引此处可以看到,user.myi文件中除了存储了主键索引的树装结构外,还存储了我们的另一个索引NAME的索引树结构,查找时根据name找到在磁盘中的位置后再去user.myd中找到相应的数据。结论:在MyI原创 2021-04-05 15:41:13 · 376 阅读 · 0 评论 -
[MySQL]为什么MySQL不推荐使用uuid作为主键
笔者之前的公司在设计表时,公司设计表优先使用UUID作为主键,当初讲这个的好处是因为可以方便迁移数据,但是了解了MySQL中索引的结构后我们发现,主键尽量能使用递增时还是选择递增。B+Tree数据结构决定了我们发现,使用递增作为主键时,叶子节点的数据是天然有序的!如果此时插入的数据是93,94,95…时,数据只需要继续往后跟即可;若插入的数据是11,12这种数据时,为保证连续性,就需要将数据左右“挪一下”,也就是页的分裂和合并”。int和varchar的大小问题int的大小为4byte,如果使.原创 2021-04-05 14:29:36 · 519 阅读 · 2 评论 -
[MySQL]MySQL中索引数据结构
MySQL一般是很多公司目前工作中用的最多的关系型数据库。如果对MySQL不够熟悉,会导致很多时候我们知其然不知其所以然,孔子云,学而不思则罔,因此博主准备对自己过往学习的MySQL知识进行总结,也分享给有需要学习的大家。索引我们初学数据库时,很多书上面都有描述索引的概念。很多书上面将索引比喻为一本书的目录,我们通过目录去迅速找到我们所需的章节内容。这里对索引的概念做一个总结:索引是帮助MySQL高效获取数据的数据结构。(在MySQL中,数据最终存储在磁盘中)在MySQL中,其索引的数据结构使.原创 2021-03-28 16:12:13 · 195 阅读 · 1 评论 -
[MySQL] 根据物理备份恢复单表
文章目录模拟单表数据丢失删除数据库中某张表恢复单表数据建表恢复数据数据误删是一个线上常见的灾难问题。想起当年公司小伙伴在上线前一天删除了用户表的数据,打电话给经理的手都是颤抖的。经理绞尽脑汁,凌晨从别的表找到人员数据拼凑恢复到用户表,但最后还是丢了部分用户数据。模拟单表数据丢失如果是执行了delete,可以通过解析binlog日志为“undo语句”,反向将数据恢复回来;但是如果执行的语句是drop,那么…尽快买一张机票,离开这个是非之地。上篇讲到使用xtrabackup可以进行物理备份,优点是原创 2020-10-13 20:19:59 · 476 阅读 · 0 评论 -
[MySQL] 日志刷盘机制
概念MySQL的InnoDB日志管理机制中,有一个概念叫MTR(mini-transaction)。MySQL中把对底层页面的一次原子访问的过程称之为一个Mini-Transaction,这里的原子操作,指的是要么全部成功,要么全部失败,不存在中间状态。向底层页面插入一个新的record,至少会产生两个MTR。首先对page的修改要持久化,需要redo log,这里是一个MTR。InnoDB为了支持MVCC和事务回滚,会产生一个undo log,undo log写入undo page,这需要一个MTR原创 2020-10-13 14:25:35 · 1413 阅读 · 0 评论 -
[MySQL]物理备份xtrabackup
为保障数据库的可靠性,我们会对数据库进行备份,一般用的最多的是逻辑备份,常用的备份工具为“mysqldump”或者“mydumper”。但是逻辑备份有较明显的缺陷——恢复较慢,物理备份则满足了运维人员对于“快速恢复数据”的要求,该工具就是MySQL数据库物理备份的佼佼者。文章目录xtrabackup与innobackupex常用命令备份普通备份压缩备份innobackupex自带备份命令利用管道、gzip压缩的备份xtrabackup与innobackupex在搜xtrabackup的相关资料时,.原创 2020-10-10 17:03:52 · 248 阅读 · 0 评论 -
[MyCAT]配置文件指定列值映射数据节点
文章目录需求rule.xmlschema.xml测试关于mycat全局序列需求可绑定数据源;通过配置文件指定。建表语句:create table cz_dept(id int auto_increment primary key , dept_no varchar(16) not null,dept_name varchar(32));为演示mycat根据列值绑定数据源功能,以该表为例做演示,拆分键为dept_no。rule.xml这个配置文件主要是进行规则信息的配置。1.funct原创 2020-07-29 10:20:40 · 769 阅读 · 0 评论 -
[ShardingSphere] sharding-proxy——MySQL伪装者(一)
本文章基于最新版5.0.0-SNAPSHOT。伪装这个词比较有意思。记得看过这么一个电影,电影名称不记得了,但是电影场景大概是讲的男主角为了盗宝,需要潜入一个全副武装的大楼。这个大楼有着非常先进的门禁系统,通过ID卡和人脸识别才能进入。男主角偷取到一个工作人员的ID卡,找到黑客帮他造了一张ID卡,完美的骗过门禁系统进入到大楼偷到秘宝。这里就需要伪装,满足系统的某些协议才能通过验证系统。shar...原创 2020-04-26 17:33:39 · 1282 阅读 · 0 评论 -
[数据库] 关于预编译的那些事
文章目录我为什么说80%的人不懂得使用预编译不使用预编译时,数据库的交互?使用预编译时,数据库的交互?这次在搞分布式数据库项目时,发现一个好玩的现象:百分之八十的人都不晓得使用预编译。我也是其中一员。由于在做的项目需要数据库较快的交互,因此摸到了这块盲区。我为什么说80%的人不懂得使用预编译我们只以为只要使用了mybatis的#{}、或者在jdbc中用的是preparedstatemen...原创 2020-03-25 17:41:42 · 909 阅读 · 0 评论