索引及查询优化

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 索引及查询优化

索引的类型
普通索引:这是最基本的索引类型,没唯一性之类的限制。
唯一性索引:和普通索引基本相同,但所有的索引列值保持唯一性。
主键:主键是一种唯一索引,但必须指定为”PRIMARY KEY”。
全文索引:MYSQL从3.23.23开始支持全文索引和全文检索。在MYSQL中,全文索引的索引类型为FULLTEXT。全文索引可以在VARCHAR或者TEXT类型的列上创建。
大多数MySQL索引(PRIMARY KEY、UNIQUE、INDEX和FULLTEXT)使用B树中存储。空间列类型的索引使用R-树,MEMORY表支持hash索引。
单列索引和多列索引(复合索引)
索引可以是单列索引,也可以是多列索引。对相关的列使用索引是提高SELECT操作性能的最佳途径之一。
多列索引:
MySQL可以为多个列创建索引。一个索引可以包括15个列。对于某些列类型,可以索引列的左前缀,列的顺序非常重要。
多列索引可以视为包含通过连接索引列的值而创建的值的排序的数组。一般来说,即使是限制最严格的单列索引,它的限制能力也远远低于多列索引。
最左前缀
多列索引有一个特点,即最左前缀(Leftmost Prefixing)。假如有一个多列索引为key(firstname lastname age),当搜索条件是以下各种列的组合和顺序时,MySQL将使用该多列索引:
firstname,lastname,age
firstname,lastname
firstname

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
JSON 开发框架 前端开发
【前端开发选择】提醒设计决策:弹窗与Toast通知,哪个更适合?
本文讨论了前端开发中弹窗与Toast通知的选择,通过实际案例比较了两者在用户体验上的差异,并分享了如何使用Toast通知在当前页面提供更友好的交互反馈。
236 2
【前端开发选择】提醒设计决策:弹窗与Toast通知,哪个更适合?
|
6月前
|
边缘计算 运维 监控
5G落地没那么简单!细扒部署挑战与硬核解决方案
5G落地没那么简单!细扒部署挑战与硬核解决方案
163 30
|
8月前
|
缓存 Java 数据库连接
十、MyBatis的缓存
十、MyBatis的缓存
133 6
|
存储 运维 Kubernetes
基于ACK One注册集群轻松实现云上云下K8s集群统一管理
基于ACK One注册集群轻松实现云上云下K8s集群统一管理
|
SQL XML IDE
Fluent Mybatis 牛逼!做到代码逻辑和sql逻辑的合一
Fluent Mybatis 牛逼!做到代码逻辑和sql逻辑的合一
421 0
Fluent Mybatis 牛逼!做到代码逻辑和sql逻辑的合一
|
安全 搜索推荐 API
利用API文档开发与学习【零基础Python教程002】
利用API文档开发与学习【零基础Python教程002】
179 0
|
Android开发
Android 解决bug:异常提示"ListView cannot be cast to android.widget.BaseAdapter "
Android 解决bug:异常提示"ListView cannot be cast to android.widget.BaseAdapter "
615 0
Android 解决bug:异常提示"ListView cannot be cast to android.widget.BaseAdapter "
|
Java API
20 Java 使用反射(Reflection) 和内省技术
反射(Reflection)是程序的自我分析能力,通过反射可以确定类有哪些方法、有哪些构造方法以及有哪些成员变量。Java语言提供了反射机制,通过反射机制能够动态读取一个类的信息;能够在运行时动态加载类,而不是在编译期。反射可以应用于框架开发,它能够从配置文件中读取配置信息动态加载类、创建对象,以及调用方法和成员变量。
179 0