MySQL 下索引的创建与应用以及设计原理|学习笔记

简介: 快速学习 MySQL 下索引的创建与应用以及设计原理

开发者学堂课程【MySQL 实操课程:MySQL 下索引的创建与应用以及设计原理】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/717/detail/12823


MySQL 下索引的创建与应用以及设计原理

 

内容介绍

一、阿里云创建索引操作

二、索引的设计原则

 

一、阿里云创建索引操作

这节课进行创建事例的讲解,前面已经讲过创建唯一索引,普通索引,前缀索引,复合索引,这里主要讲解符合索引,复合索引就是创建多个字段,可以参考如下代码做实验,就不再重复讲解了

create table book(

isbn char(20) primary key,

name char(100) not null,

brief introduction text not null,

price decimal(6,2),

publish_ _time date not null,

unique index isbn_ unique (isbn),

index name_ index (name (20)),

index complex_ jindex (price,publish_ time)

);

create table book_ noindex(

isbn char(20) primary key,

name char(100) not null,

brief_ introduction text not null,

price decimal(6,2),

publish_ time date not null

);

也可以通过阿里云的工具进行操作,演示如下
进入命令窗口,命令行输入代码进行执行,如下创建表执行成功

图片1.png

然后写入数据,要注意格式,进行执行:

mysql> insert into book_ index(isbn,name ,brief introduction,price,publish time) values

(978-7-115-25626- 3','PHP Fundamentals & Practices',Web Database Applications MySQL offers web developers a mixture of theoretical and practical information on creating web database applications. ','42.0','2012-7-1'),

(978-7-115-25626- 4,'MySQL COOKBOOK',The MySQL database management system has become quite popular in recent years. ','128.0','2008-1-1),

('978-7-115-25626-5' 'Beginning MySQL' MySQL is especially heavily used in combination with a web server for constructing database-backed web sites that involve dynamic content generation. ','98.0',2008-1-1');

图片2.png

然后进行数据查询,也是一样的:

mysql>select*from book_index where match(name,brief_intriduction) against(‘mysql’);

查询成功:

图片3.png

以上就是阿里云 rds.mysql 数据库的用法。在阿里云中对于上面创建的表还可以进行对于索引的编辑,如:

图片4.png

在DMS 数据管理平台非常方便,进入索引信息页面后找到需要进行编辑的索引名,点击编辑,而且创建的 Innodb 的表是支持全文索引的,如:

mysql> show create table book_index

图片5.png

二、索引的设计原则

1、表的某个字段值离散度越高,该字段越适合选作索引的关键字。就比如说性别,只分为男和女,所以离散度比较低,不太适合作为索引,反而像身份证,手机号码,基本上都是唯一的,就更适合做索引的关键字。

2、占用储存空间少的字段更适合选作索引的关键字; 所以不要使用 text 文本型,var_char 型作为关键字。

3、存储空间固定的字段更适合选做索引的关键字,比如说 char,相对于 var_char更加固定存储空间。

4、较频繁地作为 where 查询条件的字段应该创建索引,分组字段或者排序字段比如 join 也应该创建索引两个表的连接字段应该创建索引。一般两个表进行关联会通过主键进行索引, 比如 id,唯一性索引。

5、更新频繁的字段不适合创建关联,因为每一次更新都会带来索引的开销。不会出现在 where 子句中的字段不应该创建索引

6、尽量使用前缀索引,因为前缀索引可以节省物理的空间,特别是有的字符串前面几个字符作为关键条件就可以检索出数据,比如身份证,手机号后面几位就可以确定唯一性,所以通过一些技巧的设置可以实现前缀索引。

到此,本次课程内容的讲解,主要内容是是索引,索引的定义,什么是索引,索引的类型,还有索引的设计原则。在实际的使用过程当中,一定要遵守索引的设计原则,也重点讲解过怎么查看索引有没有生效,通过 explain 进行查看索引是否生效,那么在实际的工作当中要查看索引有没有生效,是不是按照预先的方式进行执行。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
关系型数据库 MySQL 分布式数据库
安全可靠的PolarDB V2.0 (兼容MySQL)产品能力及应用场景
PolarDB分布式轻量版采用软件输出方式,能够部署在您的自主环境中。PolarDB分布式轻量版保留并承载了云原生数据库PolarDB分布式版技术团队深厚的内核优化成果,在保持高性能的同时,显著降低成本。
619 140
|
3月前
|
SQL 监控 关系型数据库
MySQL事务处理:ACID特性与实战应用
本文深入解析了MySQL事务处理机制及ACID特性,通过银行转账、批量操作等实际案例展示了事务的应用技巧,并提供了性能优化方案。内容涵盖事务操作、一致性保障、并发控制、持久性机制、分布式事务及最佳实践,助力开发者构建高可靠数据库系统。
|
5月前
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
5月前
|
存储 关系型数据库 MySQL
MySQL数据库索引的数据结构?
MySQL中默认使用B+tree索引,它是一种多路平衡搜索树,具有树高较低、检索速度快的特点。所有数据存储在叶子节点,非叶子节点仅作索引,且叶子节点形成双向链表,便于区间查询。
202 4
|
4月前
|
存储 关系型数据库 MySQL
MYSQL数据加密压缩函数应用实战指南。
总的来说,加密和压缩是维护MySQL数据库中数据安全性和效率的有效手段。使用时需权衡性能与安全,合理应用加密和压缩函数。在设计数据库架构时要考虑到加密字段的查询性能,因为加密可能使得一些索引失效。压缩数据能有效减少存储空间的占用,但在服务器负载较高时应避免实时压缩和解压,以免影响总体性能。
178 10
|
5月前
|
存储 SQL 关系型数据库
MySQL 核心知识与索引优化全解析
本文系统梳理了 MySQL 的核心知识与索引优化策略。在基础概念部分,阐述了 char 与 varchar 在存储方式和性能上的差异,以及事务的 ACID 特性、并发事务问题及对应的隔离级别(MySQL 默认 REPEATABLE READ)。 索引基础部分,详解了 InnoDB 默认的 B+tree 索引结构(多路平衡树、叶子节点存数据、双向链表支持区间查询),区分了聚簇索引(数据与索引共存,唯一)和二级索引(数据与索引分离,多个),解释了回表查询的概念及优化方法,并分析了 B+tree 作为索引结构的优势(树高低、效率稳、支持区间查询)。 索引优化部分,列出了索引创建的六大原则
148 2
|
5月前
|
SQL 关系型数据库 MySQL
MySQL group by 底层原理详解。group by 执行 慢 原因深度分析。(图解+秒懂+史上最全)
MySQL group by 底层原理详解。group by 执行 慢 原因深度分析。(图解+秒懂+史上最全)
MySQL group by 底层原理详解。group by 执行 慢 原因深度分析。(图解+秒懂+史上最全)
|
6月前
|
存储 关系型数据库 MySQL
MySQL覆盖索引解释
总之,覆盖索引就像是图书馆中那些使得搜索变得极为迅速和简单的工具,一旦正确使用,就会让你的数据库查询飞快而轻便。让数据检索就像是读者在图书目录中以最快速度找到所需信息一样简便。这样的效率和速度,让覆盖索引成为数据库优化师傅们手中的尚方宝剑,既能够提升性能,又能够保持系统的整洁高效。
175 9
|
7月前
|
机器学习/深度学习 关系型数据库 MySQL
对比MySQL全文索引与常规索引的互异性
现在,你或许明白了这两种索引的差异,但任何技术决策都不应仅仅基于理论之上。你可以创建你的数据库实验环境,尝试不同类型的索引,看看它们如何影响性能,感受它们真实的力量。只有这样,你才能熟悉它们,掌握什么时候使用全文索引,什么时候使用常规索引,以适应复杂多变的业务需求。
205 12
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
165 3

推荐镜像

更多