我们在使用SQL语句查询表数据时,提前用explain进行语句分析是一个非常好的习惯。通过explain输出sql的详细执行信息,就可以针对性的进行sql优化。 今天我们来分析一下,在explain中11种不同type代表的含义以及其应用场景。 1、system 应用场...
美团问数据库应该是非常多的,尤其喜欢考手写 SQL 然后问你这个 SQL 语句上面加了哪些锁,你会发现其他厂面试基本很少会这样考,所以很多小伙伴遇到这种问题的时候都是一脸懵逼,这篇文章就来详细总结下 InnoDB 存储引擎中的行锁的加锁规则,并辅以实例...
一 概述 1.1 什么是集群 所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信,对外表现为一个整体,对外提供相同 的服务。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。通俗一...
表的统计信息错误导致优化器选择错误的执行计划 一个客户的性能优化案例: 没有修改数据库实例的任何配置参数以及业务代码没有变更的情况下,一条 sql 出现大幅性能下降。 我们来看看出问题的sql 以及他的执行计划: mysql> explain ...
有个客户前阵子一条SQL因为统计信息问题走错执行计划,导致CPU资源耗尽,系统出现严重故障,必须下线部分功能才临时解决了问题,后来在开发商的尝试下通过SQL PROFILE解决了错误执行计划的问题,恢复了系统。事后远程健康服务中心、Oracle原厂都参与了...
问题描述 输入想要生成日历的年份,通过调用存储过程,即可生成该年的全部日历。 创建表结构 我们根据常见的日历表来创建一个含有年,月,日,星期的日历表,具体表结构如下: CREATE TABLE CALENDAR_INFO ( &n...
最近做项目,有需求是要把项目从MySql转为Oracle数据库,于是就有了这篇文章。简单记录一下,以后再有需要拿来用。 首先是MySql整库迁移到Oracle,方法比较简单,用Navicat数据传输功能,可以很方便的搞定,其中只有一项需要注意的地方(我只遇到一...
一、背景 电商业务场景,随着平台订单规模的日益增长,订单现有的存储已经没办法支撑后面业务的发展。在得物五彩石项目的时候就对订单进行了分库分表的拆分,为了解决分库分表后卖家维度的查询问题,单独创建了一个卖家维度的订单库。 目前订单分...
一、 前言 MySQL 主从架构已经被广泛应用,保障主从复制关系的稳定性是大家一直关注的焦点。MySQL 5.6 针对主从复制稳定性提供了新特性: slave 支持 crash-safe。该功能可以解决之前版本中系统异常断电可能导致 relay_log.info 位点信息不准确的问题...
权限分配 常用的授权方式 常见的预定义角色包括CONNECT(连接角色)、RESOURCE(资源角色)、DBA(管理员)三种。# 创建新用户CREATE USER username IDENTIFIED BY password DEFAULT TABLESPACE tablespace_name;# 给普通用户授权GRANT CONNECT,...
权限的分类 权限,角色和用户的关系 权限(privilege):Oracle数据库预先定义好的、执行某些操作的能力。 角色(role):一组相关权限的集合。可以利用角色来简化权限的管理。 用户(user):通过给用户授予适当的权限或角色,用户就能够...
一、前言 我们日常做分页需求时,一般会用limit实现,但是当偏移量特别大的时候,查询效率就变得低下。本文将分四个方案,讨论如何优化MySQL百万数据的深分页问题,并附上最近优化生产慢SQL的实战案例。 二、limit深分页为什么会变慢? 先看下...
这个问题很早之前我就遇到过,但是一直没有仔细去研究,上个月看了极客的课程,有一篇文章专门有过讲解,刚好有粉丝也问我这个问题,所以感觉有必要单独出一篇。 之前也看了很多相关的文章,但是感觉讲的都不好,很多文章都会去讲各种策略,比如(旁...
MySQL中的数据类型 varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100) char 定长字符串(最长255位),存储空间是固定的,例如:char(10) int 整数型(最长11位) long 长整型 float 单精度 ...
1 缓存基本思想 1、不同的存储介质访问延迟不一样,相同成本存储容量不一样: SSD/DISK、Memory、L3 cache、L2 cache、L1 cache 五种存储介质,访问延迟逐渐降低,但是同等成本的容量却逐渐增大。 2、时间局限性原理 被获取过一次的数据在...
前言 MySQL Server当前支持如下3种注释风格: · 以'#'开头的单行注释 · 以'-- '开头的单行注释 · C语言风格的单行/多行注释 如下SQL脚本给出了3种注释风格的示例: /* 这是一个 多行注释 示例 */ select 1...
一、概述 RESTORE ... WITH MOVE 选项允许您恢复数据库,但也可以指定数据库文件(mdf 和 ldf)的新位置。如果您要从该数据库的备份还原现有数据库,则不需要这样做,但如果您要从具有不同文件位置的不同实例还原数据库,则可能需要使用此选项。 ...
SQL 作为关系型数据库的标准语言,是 IT 从业人员必不可少的技能之一。SQL 本身并不难学,编写查询语句也很容易,但是想要编写出能够高效运行的查询语句却有一定的难度。 查询优化是一个复杂的工程,涉及从硬件到参数配置、不同数据库的解析器、优化...
一、MySQL执行计划介绍 在MySQL中,执行计划的实现是基于JOIN和QEP_TAB?这两个对象。其中JOIN类表示一个查询语句块的优化和执行,每个select查询语句(即Query_block对象)在处理的时候,都会被当做JOIN对象,其定义在sql/sql_optimizer.h。 QEP...
一、客户端显示字符背景介绍 MySQL最新版本有一个新功能,在使用客户端的时候,最后加上--skip-binary-as-hex选项可以直接显示二进制值对应的字符串,不加该选项就可以按照原来的设置格式显示。先来看一下以下的varbaniry的显示例子。 #建表: ...