background picture of the home page

Hi,Friend

普通索引 vs 唯一索引

<h1 id="oX9ck">普通索引 vs 唯一索引 </h1> 在不同的业务场景下,应该选择普通索引,还是唯一索引? 假设你在维护一个居民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果居民系统需要按照身份证号查姓名: select name from

thumbnail of the cover of the post

索引下推

<h1 id="kDRrh">索引下推 (就是不着急回表,减少回表数量)</h1> 更多的是在联合索引使用 Index Condition Pushdown(ICP)是MySQL 5.6中新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式。ICP可以减少存储引擎访问基表的次数以及MySQL服务

thumbnail of the cover of the post

优先考虑覆盖索引

什么是覆盖索引? 理解方式一: 索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它 不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数 据,那就不需要读取行了。一个索引包含了满足查询结果的数据就叫做覆盖索引。 理解方式二: 非聚簇复合

thumbnail of the cover of the post

搭建Bitwarden 密码管理器,免费开源

搭建Bitwarden 密码管理器,免费开源 步骤 1:获取一台轻量级的服务器,已经有的可以跳过这步,这里使用的腾讯云服务器,并且安装Linux和宝塔管理面板。 步骤 2: 更新系统 sudo apt update && sudo apt upgrade -y 步骤 3: 安装docker 可以使

thumbnail of the cover of the post

优化分页查询

优化分页查询 一般分页查询时,通过创建覆盖索引能够比较好地提高性能。一个常见又非常头疼的问题就是imit2000000,10,此时需要MySQL排序前2000010记录,仅仅返回2000000-2000010的记录,其他记录丢弃,查询排序的代价非常大。 EXPLAIN SELECT * FROM s

thumbnail of the cover of the post

MySQL排序优化

<h1 id="wiuol">排序优化 </h1> <h2 id="JdsR2">1 排序优化 </h2> **问题:在 WHERE 条件字段上加索引,但是为什么在 ORDER BY 字段上还要加索引呢? ** **回答: ** 在MySQL中,支持两种排序方式,分别是 FileSort 和 Ind

thumbnail of the cover of the post

如何给字符串添加索引

如何给字符串添加索引 有一张教师表,表定义如下: create table teacher( ID bigint unsigned primary key, email varchar(64) )engine=innodb; 讲师要使用邮箱登录,所以业务代码中一定会出现类似于这样的语句: s

thumbnail of the cover of the post

GROUP BY优化

● group by 使用索引的原则几乎跟order by一致 ,group by 即使没有过滤条件用到索引,也可以直接使用索引。 ● group by 先排序再分组,遵照索引建的最佳左前缀法则 ● 当无法使用索引列,增max_length_for_sort_data 和 sort_buffer_s

thumbnail of the cover of the post

MySQL关联查询优化

<h1 id="d37bM">关联查询优化</h1> <h2 id="FaZio">1 数据准备 </h2> # 分类 CREATE TABLE IF NOT EXISTS `type` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `card

thumbnail of the cover of the post

子查询优化

<h1 id="j6v6E">子查询优化</h1> 子查询是 MySQL 的一项重要的功能,可以帮助我们通过一个 SQL 语句实现比较复杂的查询。但是,子 查询的执行效率不高。原因 : ①执行子查询时,MySQL需要为内层查询语句的查询结果 <font style="color:#DF2A3F;">

thumbnail of the cover of the post