栏目: MySQL

MySQL如何构建数据表索引

理解索引概念最简单的方式是通过一个案例来进行,以下就是这样的一个案例。假设我们需要设计一个在线的约会网站,这个网站的用户资料有许多列,例如国籍、省份、城市、性别、年龄、眼睛颜色等等。这个网站必须支持通过多种组合方式搜索用户资料。同时,也需要支持支持排序和根据用户最近在线时间和其他用户的评价返回有限的...

2021-05-18 67 0 0 阅读全文

MySQL 可扩展设计的基本原则

随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了。此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体系,提升系统的扩展能力,通过组合多个低处理能力的硬件设备来达到一个高处理能力的系统,也就是说,我们必须进行可扩展设计。可扩展设计是一个非常复...

2021-05-18 40 0 0 阅读全文

MYSQL存储过程即常用逻辑知识点总结

Mysql存储过程1.创建存储过程语法(格式)DELIMITER$CREATEPROCEDURE存储过程名A(IN传入参数名aINT,IN传入参数名bVARCHAR(20),OUT返回参数名cINT)BEGIN内容..........END$解析:IN代表传入的参数,定义传入参数名,并且后面跟上传入...

2021-04-26 47 0 0 阅读全文

MySQL 使用自定义变量进行查询优化

优化排序查询自定义变量的一个重要特性是你可以同时将该变量的数学计算后的结果再赋值给该变量,类似于我们的i=i+1这种方式。下面是一个用于计算数据表行号的例子:SET@rownum:=;SELECTactor_id,@rownum:=@rownum+1ASrownumFROMsakila.actorL...

2021-05-18 47 0 0 阅读全文

MySQL 逻辑备份与恢复测试的相关总结

一、什么样的备份是数据库逻辑备份呢?大家都知道,数据库在返回数据给我们使用的时候都是按照我们最初所设计期望的具有一定逻辑关联格式的形式一条一条数据来展现的,具有一定的商业逻辑属性,而在物理存储的层面上数据库软件却是按照数据库软件所设计的某种特定格式经过一定的处理后存放。数据库逻辑备份就是备份软件按照...

2021-05-18 40 0 0 阅读全文

解决Jpa查询语句自动变成了Update的问题

这是之前写的。今天碰到了个奇怪的问题,明明dao中一个查询函数,一直报connectionread-only错误,断点设置过去,发现明明一个select查询语句,一直到生成Query查看变量里面都是查询的代码,可一执行就变成了update,简直见了鬼了。我的架构是sshj,层次也就是entity,d...

2021-08-06 44 0 0 阅读全文

一种简单的ID生成策略: Mysql表生成全局唯一ID的实现

生成全局ID的方法很多,这里记录下一种简单的方案:利用mysql的自增id生成全局唯一ID.1.创建一张只需要两个字段的表:CREATETABLE`guid`(`id`bigint(20)unsignedNOTNULLAUTO_INCREMENT,`stub`char(1)NOTNULLDEFAUL...

2021-04-09 42 0 0 阅读全文

Mysql 行列转换的示例代码

一、需求我们有三张表,我们需要分类统计一段时间内抗生素的不同药敏结果,即report_item_drugs表的drugs_result,在不同项目project_name和不同抗生素antibiotic_dict_name下的占比,并将药敏结果显示在行上,效果如下:三张原始表(仅取需要的字段示例),...

2021-03-24 48 0 0 阅读全文

浅谈MySQL之Select优化方案

生活中的例子我们是否看到过在公司中许多查询语句都是select*xxxx心中的想法肯定是,别人写了select*,那我写吧,省去了不少麻烦事儿慢查询首先去思考,最基本的,是否我们使用的数据库插查询语句存在了访问的数据太多其实大部分性能低的查询往往都可以通过减少访问的数据量来优化的因为select*会...

2021-08-06 62 0 0 阅读全文

GaussDB数据库常用操作命令详解

GaussDB命令行连接1.1ssh连接主机,IP:192.168.28.178,用户名:root,密码:Huawei@1231.2切换至bin目录,cd/home/gaussdba/app/bin/1.3切换用户为gaussdba,sugaussdba1.4连接gaussDb,gsql-dpost...

2021-08-19 55 0 0 阅读全文

SQL优化教程之In与Range查询

《高性能MySQL》里面提及用in这种方式可以有效的替代一定的range查询,提升查询效率,因为在一条索引里面,range字段后面的部分是不生效的(ps.需要考虑ICP)。MySQL优化器将in这种方式转化成n*m种组合进行查询,最终将返回值合并,有点类似union但是更高效。MySQL在IN()组...

2021-04-11 38 0 0 阅读全文

MySQL 表空间碎片的概念及相关问题解决

背景经常使用MySQL的话,会发现MySQL数据文件的磁盘空间一般会不停的增长,而且有时候删了数据或者插入一批数据的时候,磁盘空间有时候还会毫无变化。引发这个其妙现象的就是MySQL的表空间碎片。什么是表空间碎片?表空间碎片指的是表空间中存在碎片,形象一点来比喻的话,就像是一张A4纸,“表空间碎片”...

2021-05-07 50 0 0 阅读全文

详解MySQL主从复制及读写分离

在企业实际应用中,成熟的业务通常数据量都比较大,而单台MySQL服务器在安全性、高可用性和高并发方面都无法满足实际的需求,我们可以在多台MySQL服务器(Master-Slave)部署主从复制来实现同步数据,再通过读写分离来提升数据库的并发负载能力。有点类似于rsync,但是不同的是rsync是对磁...

2021-05-07 37 0 0 阅读全文

MySQL慢查询的坑

一条慢查询会造成什么后果?年轻时,我一直觉得不就是返回数据会慢一些么,用户体验变差?其实远远不止,我经历过几次线上事故,有一次就是由一条SQL慢查询导致的。记得那是一条查询SQL,数据量万级时还保持在0.2秒内,随着某一段时间数据猛增,耗时一度达到了2-3秒!没有命中索引,导致全表扫描。explai...

2021-04-30 40 0 0 阅读全文

MySQL数据表分区策略及优缺点分析

假设需要对一个包含了数年历史数据、有价值的、基于时间序列的超级大的订单数据表进行范围查询。我们需要对近一个月的数据进行统计查询,这会涉及到一亿行数据。也许新的版本的MySQL能够支持,但是未来的数据量会更夸张,比如假设一个硬件应用产生的数据超过了10TB,这比服务器内存大多了,而服务器的硬件还是当前...

2021-05-18 44 0 0 阅读全文

MySQL高级特性—数据表分区的概念及机制详解

当数据表过大时,通过普通的查询优化技巧已经无法大幅度提升性能,此时往往需要进行分区分表优化。分区其实是将一张逻辑上统一的表在物理上划分成了多张表。分区操作对使用者而言是一个黑盒操作,但是如果你从文件系统上看,就会看到分区数据表的实际存储方式是分开的。MySQL的分区的实现方式是对数据表进行一层包装,...

2021-05-18 43 0 0 阅读全文

MySQL InnoDB架构的相关总结

引言作为一个后端程序员,我们几乎每天都要和数据库打交道,市面上的数据库有很多,比如:Mysql,Oracle,SqlServer等等,那么我们的写的程序是怎么和数据库连接起来的呢?那就是数据库驱动,不同的数据库对应了不同的数据库驱动。在我们连接数据库的时候,首先将数据库驱动进行注册,然后基于数据库地...

2021-05-18 38 0 0 阅读全文

MySQL 独立索引和联合索引的选择

通常会对多列索引缺乏理解,常见的错误是将很多列设置独立索引,或者是索引列使用错误的次序。我们在下一篇讨论索引列次序的问题,首先看一下多列独立索引的情况,以下面的表结构为例:CREATETABLEtest(c1INT,c2INT,c3INT,KEY(c1),KEY(c2),KEY(c3),);使用这种...

2021-05-18 44 0 0 阅读全文

MySQL InnoDB ReplicaSet(副本集)简单介绍

01InnoDBReplicaSet(副本集)介绍在MySQL8.0引入了InnoDBReplicaSet,它提供了我们熟悉的复制特性,如果有mongodb副本集的概念,理解InnoDBReplicaSet会比较容易。InnoDBReplicaSet使用了下面的技术:1、MySQLShell,一个功...

2021-04-23 55 0 0 阅读全文

浅谈为什么MySQL不建议Delete删除数据

我负责的有几个系统随着业务量的增长,存储在MySQL中的数据日益剧增,很快都达到了亿级别,这就导致跟其Join的表的SQL变得很慢,对的应用接口的responsetime也变长了,影响了用户体验。我分析原因发现,发现有些表的数据量增长很快,对应SQL扫描了很多无效数据,导致SQL慢了下来,通过确认之...

2021-04-06 51 0 0 阅读全文