创建表&创建索引 create table tbl1 ( id int unique, sname varchar(50), index tbl1_index_sname(…
一 、背景 一般在数据仓库环境中,我们可以很方便的使用row_number函数根据某个维度来对数据进行分组,实现每个组内数据编号排序的效果。如下图所示,该图是在mysql环境中生成…
想象这样一个场景,在设计一张用户表时,每人的身份证号是唯一的,需要搜索。但由于身份证号字段较大,不好将其作为主键。在业务代码已经保证插入身份证唯一的情况下,可以选择建立唯一索引和普…
MySQL 中,可以为某张表指定多个索引,但在语句具体执行时,选用哪个索引是由 MySQL 中执行器确定的。那么执行器选择索引的原则是什么,以及会不会出现选错索引的情况呢? 先看这…
MySQL 在整体架构上分为 Server 层和存储引擎层。其中 Server 层,包括连接器、查询缓存、分析器、优化器、执行器等,存储过程、触发器、视图和内置函数都在这层实现。数…
有时会碰到这样的情况,一条 SQL 在平时执行没问题,很快。但是突然某个时间执行的就会很慢,而且这种场景并不能复现,只能随机发送的。 SQL 执行突然变慢的原因 在之前讲解 MyS…
目录 一、Insert的几种语法 1-1.普通插入语句 1-2.插入或更新 1-3.插入或替换 1-4.插入或忽略 二、大量数据插入 2-1、三种处理方式 2-1-1、单条循环插入…
对于运行很长时间的数据库来说,往往会出现表占用存储空间过大的问题,可是将许多没用的表删除之后,表文件的大小并没有改变,想解决这个问题,就需要了解 InnoDB 如何回收表空间的。 …
具体方法: 首先打开命令提示符; 然后执行【mysql -u root -p】命令进入mysql; 最后执行如下命令即可: select SUBSTRING_INDEX(host,…
使用索引提高查询速度 1.前言 在web开发中,业务模版,业务逻辑(包括缓存、连接池)和数据库这三个部分,数据库在其中负责执行SQL查询并返回查询结果,是影响网站速度最重要的性…
连接查询: 是将两个查询(或表)的每一行,以“两两横同对接”的方式,所得到的所有行的结果,即一个表中的某行,跟另一个表中的某行。进行“横向对接”,得到一个新行。 连接查询包括以下这…
具体方法: (推荐教程:mysql数据库学习教程) 查看表被锁状态 # 查询哪些表锁了 show OPEN TABLES where&nbs…