`

mysql索引

 
阅读更多

总结:

选择优化的数据类型 

1: 更小的通常更好 

2: 简单就好

3: 尽量避免NULL

 

缓存表和汇总表: 为了提高性能,创建一张完全独立的汇总表或缓存表

 

物化视图 : 预先计算并存储在磁盘上的表,可以通过各种各样的策略刷新和更新

 

alter table 优化:

避免执行需要好长时间,可以通过2种技巧

1: 先在一台不提供服务的机器上执行alter table,然后和提供服务的主库切换

2: 创建一张和源表无关的新表,然后通过重命名和删表操作交换两张表

只修改默认值的时候

1: alter table film modify column a tinyint(3) not null default 5 

2: alter table film alter column a set default 5 (效率高)

 

mysql 中包含的索引类型

b-tree 索引

哈希 索引

空间数据 索引

全文 索引

 

 

一、 单列索引和多列索引

 mysql 在查询是只能使用一个索引,如何有多个单列索引,mysql会试图选择一个最严格的索引,但没有多列够成的索引限制能力强。

 

二、  最左前缀

如 : index (col1,col2,col3)

则: 下面三种,都可以使用到索引

         col1,col2,col3

         col1,col2

         col1

 

三、前缀索引和索引选择性

 1: 索引选择性, 不重复的索引值  /  数据表的记录总数 

 

四、索引顺序

 1: 将选择性最高的列放到索引最前面,当不需要考虑排序和分组时,将选择性最高的列放在前面通常是很好的。

 

五、聚簇索引

1: 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式,由于数据行和相邻的键值紧凑地存储在一起,一个表只能有一个聚簇索引。

优点: 可以把索引和相关数据保存在一起,数据访问块

缺点: 插入速度依赖于插入顺序,更新会强制InnoDB将每个被更新的行移动到新的位置

 

六、覆盖索引

1: 根据查询的where条件来创建合适的索引,不过这只是索引优化的一个方面。

 

如果一个索引包含所有需要查询的字段的值,我们就称之为“覆盖索引”,这样的话,只需要返回扫描索引,而无需在扫描数据行。

 

 

七、Mysql 实现排序的两种方式

设计索引时应该尽可能地同时满足排序、查找行

 

规则

    1: 只有当索引的列顺序和Order by子句的顺序完全一致,并且所有列的排序方向都一样时,Mysql才能够使用索引来对结果做排序。

    2:当需要关联多张表,则order by 子句引用的字段全部为第一表时,才能使用索引做排序。

    3: 需要满足索引的最左前缀。

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    mysql 索引与执行计划

    ### MySQL 索引与执行计划 #### 一、索引与执行计划 ##### 1.1 索引入门 在深入探讨之前,我们首先需要理解什么是索引以及其重要性。 ###### 1.1.1 索引是什么 索引(Index)在MySQL中是一种帮助数据库高效获取...

    MySQL 索引最佳实践

    ### MySQL索引最佳实践 #### 理解索引的重要性 在数据库管理中,索引是一种数据结构,用于提高查询速度。它对于开发者和数据库管理员(DBA)来说至关重要。索引选择不当可能会导致生产环境中的诸多问题。尽管索引...

    04-VIP-Mysql索引优化实战一.pdf

    MySQL索引优化是数据库性能提升的关键环节,本篇主要探讨了几个关于MySQL索引使用和优化的重要知识点。 首先,创建了一个名为`employees`的员工记录表,其中包含`id`(主键)、`name`、`age`、`position`和`hire_...

    MySQL索引类型大汇总

    MySQL 索引类型大汇总 MySQL 索引类型是数据库性能优化的关键所在。索引可以大幅度提高查询速度,提高数据库的高效运行。在 MySQL 中,索引可以分为单列索引和组合索引两种。 1. 普通索引 普通索引是最基本的索引...

    MySQL索引最佳实践

    ### MySQL索引最佳实践 #### 一、理解MySQL索引的重要性 索引是数据库性能优化中最常用也是最重要的手段之一。合理的索引设计可以显著提高查询效率,减少服务器资源的消耗。在MySQL中,索引的选择与配置对于开发...

    05-VIP-Mysql索引优化实战二.pdf

    Mysql索引优化实战二 本文档主要介绍了Mysql索引优化的实战经验,着重于分页查询优化和Join关联查询优化。 一、分页查询优化 在实际业务系统中,分页功能是非常常见的,对于大表的分页查询,执行效率往往非常低。...

    MySQL索引优化课件

    MySQL索引优化是数据库性能提升的关键技术之一,尤其在处理大量数据时,高效索引能够显著加快查询速度,降低服务器负载。本课件主要聚焦于MySQL数据库的索引原理、优化策略以及相关存储过程和触发器的应用。 首先,...

    MySQL索引分析和优化.pdf

    ### MySQL索引分析和优化 #### 一、索引的重要性及原理 索引在数据库管理中扮演着极其重要的角色,特别是在提高数据检索速度方面。**MySQL索引**本质上是用来加快数据检索过程的一种数据结构,类似于书籍中的目录...

    mysql索引和锁机制ppt介绍

    ### MySQL索引和锁机制详解 #### 一、索引基础 **索引定义:** 索引是MySQL中用于提高查询效率的一种数据结构。通过索引可以在数据表中快速定位到所需的数据行,大大减少不必要的全表扫描。 **索引的重要性:** 1....

    MySQL索引 使用笔记

    【MySQL索引 使用笔记】 MySQL数据库是世界上最流行的开源关系型数据库管理系统之一,其高效的数据查询能力在很大程度上依赖于索引。本笔记将深入探讨MySQL中的索引使用,旨在帮助你提升数据库性能。 1. 索引的...

    由浅入深探究mysql索引结构原理、性能分析与优化

    由浅入深探究mysql索引结构原理、性能分析与优化

    mysql索引与视图的实例附答案宣贯.pdf

    mysql索引与视图实例附答案宣贯 在本篇文章中,我们将探讨 MySQL 中的索引和视图这两个重要概念,并通过实例和答案来宣贯相关知识点。 索引概念: 索引是一种数据结构,它可以提高查询的速度。索引可以创建在表上...

    MySQL索引背后的数据结构及算法原理

    ### MySQL索引背后的数据结构及算法原理 #### 数据结构及算法基础 索引在数据库中的作用至关重要,它能够显著提高数据检索的速度。正如标题所提到的,“MySQL索引背后的数据结构及算法原理”这一主题是技术面试中...

    Mysql索引数据结构.pptx

    MySQL 索引数据结构是数据库管理系统中提升查询效率的关键技术。当我们在处理查询速度较慢的 SQL 语句时,通常会考虑引入索引来优化。索引是一种特殊的数据结构,它按照一定的排序规则存储了数据表中的部分或全部...

    MySQL索引原理及慢查询优化1

    MySQL索引原理及慢查询优化是数据库管理中的重要主题,尤其是在高并发、大数据量的互联网环境中,优化查询性能对于系统的整体效能至关重要。MySQL作为广泛使用的开源关系型数据库,其索引机制和查询优化技巧是开发者...

    MySQL索引分析和优化[定义].pdf

    MySQL索引是数据库管理系统中用于加速数据检索的关键组件。它们的工作原理类似于书籍的索引,允许数据库系统快速定位和访问所需的数据,而无需遍历整个表。MySQL支持多种类型的索引,包括普通索引、唯一性索引和主键...

    MySQL索引面试.md

    本资源详细解释了MySQL索引的出现原因以及一些常见的面试问题

Global site tag (gtag.js) - Google Analytics