MySQL优化之如何写出高质量sql语句
前言 关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂。这篇文章就来给大家详细介绍了26条优化建议,下面来一起看看吧 1. 查询sql尽量不要使用...
前言 关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂。这篇文章就来给大家详细介绍了26条优化建议,下面来一起看看吧 1. 查询sql尽量不要使用...
1.慢日志简介 慢日志全称为慢查询日志(slow query log),主要用来记录在 mysql 中执行时间超过指定时间的 sql 语句。通过慢查询日志,可...
创建数据库 右键-新建数据库 输入库名、选择字符集和排序规则,点确定 创建数据库成功 新建表 my-表-右键-新建表 如上...
隔离数据列 通常,我们会发现查询语句会妨碍mysql使用索引。除非在查询语句中列是独立的,否则mysql不会使用这些列的索引。“隔离”的意思是索引列不应该成为表达式的一部分...
优化排序查询 自定义变量的一个重要特性是你可以同时将该变量的数学计算后的结果再赋值给该变量,类似于我们的 i = i + 1这种方式。下面是一个用于计算数据表行号的例子:...
一、什么样的备份是数据库逻辑备份呢? 大家都知道,数据库在返回数据给我们使用的时候都是按照我们最初所设计期望的具有一定逻辑关联格式的形式一条一条数据来展现的,具有一定的商业逻辑属性,而在物理...
前言 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了。此时,我们如何来解决系统对性能的要求? 只有一个办法,那就是通过改造系统的架构体系,提升系统的扩展...
背景: 由于最近公司项目好像有点受不住并发压力了,优化迫在眉睫。由于当前系统是单数据库系统原因,能优化的地方也尽力优化了但是数据库瓶颈还是严重限制了项目的并发能力。所以就考虑了添加数据库来增...
理解索引概念最简单的方式是通过一个案例来进行,以下就是这样的一个案例。 假设我们需要设计一个在线的约会网站,这个网站的用户资料有许多列,例如国籍、省份、城市、性别、年龄、眼睛颜色等等。这个网...
查找和修复数据表冲突 数据表最糟糕的事情就是发生冲突。使用myisam存储引擎时,通常因为崩溃导致冲突。然而,当存在硬件故障、mysql内部bug或操作系统bug时,所有的...
mysql查询优化需要经过解析、预处理和优化三个步骤。在这些过程中,都有可能发生错误。本篇文章不会深入讨论错误处理,而是帮助理解 mysql 执行查询的方式,以便可以写出更好的查询语句。 解...
MySQL 的自定义 就是存储值的临时容器,只要与服务端的连接是活跃的,容器中的值可以保存和使用。可以通过简单的 SET 或 SELECT语句 设置自定义变量,如下所示: ?...
最近刚入职新公司,发现数据库设计有点小问题,数据库字段很多没有not null,对于强迫症晚期患者来说,简直难以忍受,因此有了这篇文章。 基于目前大部分的开发现状来说,我们都会把字段全部设置...
应用场景 在数据表中,要记录的每条数据是什么时候创建的,不需要应用程序去特意记录,而是由数据库获取当前时间自动记录创建时间。 在数据库中,要记录每条数据是什么时候修改的,不需要应...
库操作 查询 1.SHOW DATABASE; ----查询所有数据库 2.SHOW CREATE DATABASE 数据库名称; ----查询某个数据库的创建模式...
前言 mysql 数据库的字符串类型有 char、varchar、binary、blob、text、enum、set。不同的类型在业务设计、数据库性能方面的表现完全不同,其中最常使用的是 c...
前言:mysql在我们的开发中基本每天都要面对的,作为开发中的数据的来源,mysql承担者存储数据和读写数据的职责。因为学习和了解mysql是至关重要的,那么当我们在客户端发起一个sql到出现详...
本文记录了mysql 8.0.24版本安装配置方法,分享给大家 从mysql官网下载mysql 下载完成后直接双击进行安装,打开后的页面如下所示: 选择自定义custom,接着...
本文为大家分享了mysql 8.0.24 安装教程,供大家参考,具体内容如下 下载地址:官网 1、解压文件夹 2、配置环境变量,将mysql下的bin目录添加到path中;...
查询优化、索引优化和表设计优化是环环相扣的。如果你有丰富的编写mysql查询语句的经验,你就会知道如何设计表和索引来支持有效的查询。同样的,知晓表设计同样有助于了解表结构如何对查询语句产生...
前言: 日常使用 mysql 的过程中,我们可能会经常使用可视化工具来连接 mysql ,其中比较常用的就是 navicat 了。平时也会遇到某些同学问, navicat 怎么安装,如何使用...
1. 简介 EXPLAIN语句提供有关 MySQL 如何执行语句的信息。 EXPLAIN与SELECT、DELETE、INSERT、REPLACE和UPDATE语句一起...
在有分页查询的应用中,包括 LIMIT 和 OFFSET 的查询十分常见,而且几乎每个都会有一个 ORDER BY 子句。如果使用索引排序的话将对性能优化十分有帮助,否则服务端需要做很多文...
背景 说的事务,大家应该都不陌生,开发用到 MySql 数据库的时候,通常会用到事务。其中比较经典的例子就是转账,比如你要给小明转 50 块钱,而此时你的银行卡也就只有 5...
MySQL 在处理 GROUP BY 和 DISTINCT 查询的方式在大多数情况下类似,事实上,在优化过程中有时候会把在这两种方式中转换。两类查询都能够从索引中受益,通常,这也是优化这两...
JDBC的六步: 1.注册驱动 2.获取数据库的连接 3.获取数据库的操作对象 4.执行sql语句 5.处理查询结果集(如果执行的语句中没有select语句这一步不用写)...
1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算...
一、索引基本知识 1.1 索引的优点 大大减少了服务器需要扫描的数据量,加快数据库的检索速度 帮助服务器避免排序和临时表 将随机io变成顺序io 1.2 索引的...
COUNT 函数做什么用? COUNT 是一个专用的函数,通常有两种不同的方式:计算值和数据行。值指的是非空(Non-NULL)表达式(NULL表示值缺失)。如果我们在 COUNT的参数中指...
如果需要从 MySQL 服务端获得很高的性能,最佳的方式就是花时间研究 MySQL 优化和执行查询的机制。一旦理解了这些,大部分的查询优化是有据可循的,从而使得整个查询优化的过程更有逻辑性。下图...
在优化存在问题的查询时,我们需要改变方式去获取查询结果——但这并不意味着从 MySQL获取同样的结果集。有些时候我们可以将查询转换为获取相同结果,但更好性能的查询形式。然而,我们也需要考虑重写查...
MySQL 联合查询执行策略。 以一个 UNION 查询为例,MySQL 执行 UNION 查询时,会把他们当做一系列的单个查询语句,然后把对应的结果放入到临时表中,最终再读出来返回。在 M...
背景 年前本应该是回顾一年工作和收尾的阶段,奈何各种促销,活动都等着春节,因此也遇到了不少的问题,回顾了一下最近遇到的问题,发现有好几个问题比较类似,正好整理一下,作为年前收尾的案例吧。表现...
前言 相信看过上一篇文章《MySQL案例:一个数据丢失惨案》的童鞋,都应该意识到,sql_mode是一个非常关键的配置,接下来就带来该配置项的详细解析。 sql_mode详解...
前言 最近,有一位朋友突然微信联系我,说MySQL出现了数据丢失的情况;毫无疑问,对于一个DBA而言,这无疑是最令人紧张的一件事情,没有之一;听到这个消息后,我也就立刻投入到问题排查中。...
问题描述 最近接到一个奇怪的咨询,update 语句执行没有报错,但是没有更新数据,具体有问题的语句类似于如下形式: update test.stu set cna...
前言 mysql 是最流行的关系型数据库管理系统,在 web 应用方面 mysql 是最好的 rdbms(relational database management system:关系数据...
前言 当我们用 navicat、mysql workbench 等mysql 的客户端执行一条sql语句后,我们就能得到相应的结果。例如: 那么这个过程发生...
影响 MySQL 性能的因素很多,今天咱们来看看 CPU 和内存是如何影响 MySQL 性能的,以及我们在购买服务器的时候,该如何挑选这些配置。 CPU ...
前言 写作案例分析,主要是工具介绍&推荐。MySQL 的同步机制比较单纯,主库上执行过的 DML 和 DDL 会在从库上再执行一次,那么主库上需要 10min 才能执行完的 DDL...
前言 最近偶尔会收到用户反馈数据不见了,数据丢失了的问题。从现象上来看,这类问题在数据库层面就是紧急程度最高的那一类了,抛开客观条件来说,针对这一类问题的恢复手段几乎只有备份恢复+回放 Bi...
在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M...
问题描述 在 MySQL 中使用 delete 语句删除数据之后,监控视图中可用的磁盘空间没有增加,磁盘使用率没有下降等等。 解决方案 delete 不释放空间是 MySQL 自身机...
前言 近期多次聊到sql_mode的话题,也是多次遇到相关问题,今天就趁热打铁,再给大家带来一个sql_mode的案例分享。 场景模拟 基于业务敏感性的考虑,下面涉及的表、存储...
前言 需要从数据库检索某些符合要求的数据,我们很容易写出 Select A B C FROM T WHERE ID = XX 这样的SQL,那么当我们向数据库发送这样一个请求时,...
前言 有人说单表超千万数据就应该分库分表了,这么玩不合理啊。但是对于创新业务来讲,业务系统的设计不可能一上来就预估这么大的容量,成本和工期都不足矣完成系统的开发工作。...
引言 春节前一个悠闲的上午,小航送了我,一袋坚果,他看我吃的正香,慢慢问道:”温哥,mysql的排序,有什么要注意的吗,不就是正排倒排吗?” 我一听他问我的问题,顿感坚...
加班原因是上线,解决线上数据库存在重复数据的问题,发现了程序的bug,很好解决,有点问题的是,修正线上的重复数据。 线上库有6个表存在重复数据,其中2个表比较大,一个96万+、一个30...
MySQL主从搭建分几种场景 无业务数据,初始化搭建 有业务数据,临时扩展 初始化的搭建很简单,不涉及数据业务,所以锁表、停机等都不影响,但是更多时候是...
松哥有两个小伙伴最近在帮人改造一个系统,对方原本的系统是一个用 Java GUI 做的桌面应用,现在要用 Spring Boot 改造成一个 Web 应用。原本的应用在 Mac 上运行的时...