总结:
选择优化的数据类型
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 索引与执行计划 #### 一、索引与执行计划 ##### 1.1 索引入门 在深入探讨之前,我们首先需要理解什么是索引以及其重要性。 ###### 1.1.1 索引是什么 索引(Index)在MySQL中是一种帮助数据库高效获取...
### MySQL索引最佳实践 #### 理解索引的重要性 在数据库管理中,索引是一种数据结构,用于提高查询速度。它对于开发者和数据库管理员(DBA)来说至关重要。索引选择不当可能会导致生产环境中的诸多问题。尽管索引...
MySQL索引优化是数据库性能提升的关键环节,本篇主要探讨了几个关于MySQL索引使用和优化的重要知识点。 首先,创建了一个名为`employees`的员工记录表,其中包含`id`(主键)、`name`、`age`、`position`和`hire_...
MySQL 索引类型大汇总 MySQL 索引类型是数据库性能优化的关键所在。索引可以大幅度提高查询速度,提高数据库的高效运行。在 MySQL 中,索引可以分为单列索引和组合索引两种。 1. 普通索引 普通索引是最基本的索引...
### MySQL索引最佳实践 #### 一、理解MySQL索引的重要性 索引是数据库性能优化中最常用也是最重要的手段之一。合理的索引设计可以显著提高查询效率,减少服务器资源的消耗。在MySQL中,索引的选择与配置对于开发...
Mysql索引优化实战二 本文档主要介绍了Mysql索引优化的实战经验,着重于分页查询优化和Join关联查询优化。 一、分页查询优化 在实际业务系统中,分页功能是非常常见的,对于大表的分页查询,执行效率往往非常低。...
MySQL索引优化是数据库性能提升的关键技术之一,尤其在处理大量数据时,高效索引能够显著加快查询速度,降低服务器负载。本课件主要聚焦于MySQL数据库的索引原理、优化策略以及相关存储过程和触发器的应用。 首先,...
### MySQL索引分析和优化 #### 一、索引的重要性及原理 索引在数据库管理中扮演着极其重要的角色,特别是在提高数据检索速度方面。**MySQL索引**本质上是用来加快数据检索过程的一种数据结构,类似于书籍中的目录...
### MySQL索引和锁机制详解 #### 一、索引基础 **索引定义:** 索引是MySQL中用于提高查询效率的一种数据结构。通过索引可以在数据表中快速定位到所需的数据行,大大减少不必要的全表扫描。 **索引的重要性:** 1....
【MySQL索引 使用笔记】 MySQL数据库是世界上最流行的开源关系型数据库管理系统之一,其高效的数据查询能力在很大程度上依赖于索引。本笔记将深入探讨MySQL中的索引使用,旨在帮助你提升数据库性能。 1. 索引的...
由浅入深探究mysql索引结构原理、性能分析与优化
mysql索引与视图实例附答案宣贯 在本篇文章中,我们将探讨 MySQL 中的索引和视图这两个重要概念,并通过实例和答案来宣贯相关知识点。 索引概念: 索引是一种数据结构,它可以提高查询的速度。索引可以创建在表上...
### MySQL索引背后的数据结构及算法原理 #### 数据结构及算法基础 索引在数据库中的作用至关重要,它能够显著提高数据检索的速度。正如标题所提到的,“MySQL索引背后的数据结构及算法原理”这一主题是技术面试中...
MySQL 索引数据结构是数据库管理系统中提升查询效率的关键技术。当我们在处理查询速度较慢的 SQL 语句时,通常会考虑引入索引来优化。索引是一种特殊的数据结构,它按照一定的排序规则存储了数据表中的部分或全部...
MySQL索引原理及慢查询优化是数据库管理中的重要主题,尤其是在高并发、大数据量的互联网环境中,优化查询性能对于系统的整体效能至关重要。MySQL作为广泛使用的开源关系型数据库,其索引机制和查询优化技巧是开发者...
MySQL索引是数据库管理系统中用于加速数据检索的关键组件。它们的工作原理类似于书籍的索引,允许数据库系统快速定位和访问所需的数据,而无需遍历整个表。MySQL支持多种类型的索引,包括普通索引、唯一性索引和主键...
本资源详细解释了MySQL索引的出现原因以及一些常见的面试问题