随笔分类 -  数据库

摘要:EXPLAIN简介 EXPLAIN 命令是查看查询优化器如何决定执行查询的主要方法,使用EXPLAIN,只需要在查询中的SELECT关键字之前增加EXPLAIN这个词即可,MYSQL会在查询上设置一个标记,当执行查询时,这个标记会使其返回关于在执行计划中每一步的信息,而不是执行它,它会返回一行或多行 阅读全文
posted @ 2019-04-19 15:34 myseries 阅读(8046) 评论(0) 推荐(4) 编辑
摘要:本文我们来谈谈项目中常用的MySQL优化方法,共19条,具体如下: 一、EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。 下面来个简单的示例,标注(1、2、3、4、5)我们要重点关注的数据: type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现al 阅读全文
posted @ 2019-04-19 12:25 myseries 阅读(1599) 评论(0) 推荐(1) 编辑
摘要:先抛出几个问题 索引知识回顾 对于 MySQL 数据库而言,数据是存储在文件里的,而为了能够快速定位到某张表里的某条记录进行查询和修改,我们需要将这些数据以一定的数据结构进行存储,这个数据结构就是我们说的索引。回忆一下我们大学里学过的算法与数据结构,能够支持快速查找的数据结构有:顺序数组、哈希、搜索 阅读全文
posted @ 2019-04-19 11:17 myseries 阅读(1043) 评论(0) 推荐(0) 编辑
摘要:建立索引的原则: 定义主键的数据列一定要建立索引。 定义有外键的数据列一定要建立索引。 对于经常查询的数据列最好建立索引。 对于需要在指定范围内的快速或频繁查询的数据列; 经常用在WHERE子句中的数据列。 经常出现在关键字order by、group by、distinct后面的字段,建立索引。如 阅读全文
posted @ 2019-04-18 15:18 myseries 阅读(6829) 评论(0) 推荐(0) 编辑
摘要:前言 MySQL中有以下日志文件,分别是: 1:重做日志(redo log) 2:回滚日志(undo log) 3:二进制日志(binlog) 4:错误日志(errorlog) 5:慢查询日志(slow query log) 6:一般查询日志(general log) 7:中继日志(relay lo 阅读全文
posted @ 2019-04-18 11:22 myseries 阅读(43144) 评论(1) 推荐(10) 编辑
摘要:一 MySQL 基础架构分析 1.1 MySQL 基本架构概览 下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。 先简单介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图,在 1.2 节中会详细介绍到这些组件的作用。 •连接器: 阅读全文
posted @ 2019-04-18 09:35 myseries 阅读(3856) 评论(0) 推荐(2) 编辑
摘要:UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法 注释:默认地,UNION 操作符选取不同的值。如果允许重 阅读全文
posted @ 2019-04-17 18:50 myseries 阅读(228) 评论(0) 推荐(0) 编辑
摘要:在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 关键词 DISTINCT 用于返回唯一不同的值(注意:distinct是作用于多列的)。 表A: 表B: 1.作用于单列 执行后结果如下: 2.作用于多列 执行后结果如下: 实际上是根据name和id 阅读全文
posted @ 2019-04-17 18:16 myseries 阅读(456) 评论(0) 推荐(0) 编辑
摘要:GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。 SQL GROUP BY 语法 SQL GROUP BY 实例 我们拥有下面这个 "Orders" 表: O_IdOrderDateOrderPriceCustomer 1 2008/12/29 10 阅读全文
posted @ 2019-04-17 17:48 myseries 阅读(285) 评论(0) 推荐(0) 编辑
摘要:一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。 1、大多数情况是正常的,只是偶尔会出现很慢的情况。 2、在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。 针对这两种情况,我们来分析下可能是哪些原因导致 阅读全文
posted @ 2019-04-16 18:52 myseries 阅读(8515) 评论(0) 推荐(3) 编辑
摘要:以下索引知识以mysql索引来阐述 一:MySQL中索引的语法 (1)创建索引 注意: 1、索引需要占用磁盘空间,因此在创建索引时要考虑到磁盘空间是否足够 2、创建索引时需要对表加锁,因此实际操作中需要在业务空闲期间进行 (2)索引相关sql 二:索引的优缺点 优势:可以快速检索,减少I/O次数,加 阅读全文
posted @ 2019-04-06 19:49 myseries 阅读(4891) 评论(0) 推荐(2) 编辑
摘要:1:什么是主键 在一张表中,用来唯一标识一条记录的字段集,叫做主关键字或者主关键码,简称主键(或主码),这里说"字段集"是因为主键可能用一个字段或者多个字段来表示。举例来看: 学生表(学号, 姓名, 性别,专业编号),这里学号是主键,一个学号id就可以唯一标识一个学生的信息。另一个表:学生选课表(学 阅读全文
posted @ 2016-02-27 12:00 myseries 阅读(9551) 评论(0) 推荐(1) 编辑
摘要:说白了,索引问题就是一个查找问题。 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法 阅读全文
posted @ 2016-02-27 11:47 myseries 阅读(6530) 评论(1) 推荐(0) 编辑