MySQL索引入门实例

MySQL索引入门实例

索引的含义和特点:

索引是创建在表上的,是对数据库中一列或者多列的值进行排序的一种结构,索引可以提高查询速度。

 

通过索引,查询数据时可以不必完全记录所有的信息,而只是查询索引列。否则,数据库系统将每条记录的所有信息进行匹配。就相当于是新华字典的音序表。如果没有这个音序表那么我们在查一个字的时候需要在整本字典上查找,是相当耗时耗力的,有了这个音序表,那么再查这个字只需要在音序表上查到他的索引,根据索引直接去找这个字,速度就相当快了。索引就是这个意思。

运用技巧:

索引可以提高查询速度,但是会影响插入记录的速度。因为向有索引的表中插入记录时,数据库系统会自动按照索引进行排序。这样就会降低插入记录的速度,所以在插入大量的数据时的速度影响更加明显。这种情况下,最好的办法是先删除表中的索引,然后插入数据,插入完成后,再创建索引。

 

    MySQL的索引包括普通索引,唯一索引,全文索引,单列索引,多列索引,和空间索引等。

1.普通索引:在创建普通索引时,不附加任何限制条件,可以创建在任何数据类型中。

2.唯一索引:使用unique参数可以设置索引为唯一性索引,唯一性索引在创建时限制该索引的值必须是唯一的。

3.全文索引:使用fulltext参数可以设置索引为全文索引。全文索引的类型可以创建在char,varchartext类型的字段上。查询数据量较大的字符串类型的字段时,使用全文索引提高查询速度,只有myisam存储引擎支持全文检索。

4.单列索引:在表中的单个字段上创建的索引。单列索引只根据该字段进行索引,可以是普通索引,唯一性索引,还可以是全文索引,必须保证该字段只对应一个字段。

5.多列索引:在表中的多个字段上创建的索引。该索引创建对应多个字段,可以通过这几个字段进行查询,但是只有在查询时使用了这些字段中第一个字段时,索引才会被使用。

6.空间索引:使用spatial参数可以设置索引为空间索引,空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率。MySQL中的空间数据类型包括geometrypointlinestring,polygon等,只有myisam存储引擎支持空间检索,而且索引的字段不能为空值。

    索引的设计原则:

1.选择唯一性索引

2.为经常需要排序,分组和联合操作的字段建立索引

3.为常作为查询条件的字段建立索引

4.限制索引的数目

5.尽量使用数据量少的索引

6.尽量使用前缀来索引

7.删除不再使用或很少使用的索引

MySQL索引的创建、删除

#创建普通索引  创建普通索引时不需要加任何unique fulltext spatial参数

create table index1 (id int,name varchar(20),sex boolean,index(id));

#查看表结构

show create table index1;

#使用explain语句查看索引是否被使用

explain select * from index1 where id = 1;

 

#创建唯一索引

create table index2 (id int unique,name varchar(20), unique index index2_id(id asc));

#查看表结构

show create TABLE index2;

explain select * from index2 where id = 1;

 

#创建全文索引

create table index3 (id int, info varchar(20),fulltext index index3_info(info))engine = MyISAM;

#查看表结构

show create TABLE index3;

 

#创建单列索引

create table index4 (id int,subject varchar(30),index index4_st(subject(10)));

#查看表结构

show create TABLE index4;

 

#创建多列索引     查询过程中,只有使用了这些字段中的第一个字段时,索引才会被使用,如果不用第一个字段查询,该索引不会启用

create table index5(id int ,name varchar(32),sex varchar(10),index index5_duo(name(10),sex(10)));

#查看表结构

show create TABLE index5;

 

#创建空间索引   创建空间索引时必须使用spatial参数来设置,表的存储引擎必须是myisam,而且索引字段必须有非空约束

create table index6(id int ,space geometry not null,spatial index index6_sp(space))ENGINE MyISAM;

#查看表结构

show create TABLE index6;

 

#在已存在的表上创建普通索引

create index index7_id on student(stuID);

#查看表结构

show create TABLE student;

 

#在已存在的表上创建唯一性索引

create unique INDEX index8_id on borrow(borrowID);

#查看表结构

show create TABLE borrow;

 

#在已存在的表上创建全文索引

create FULLTEXT index index9_info on index3(info);

#查看表结构

show create TABLE index3;

 

#在已存在的表上创建单列索引

create index index10_aut on book(author(4));

#查看表结构

show create TABLE index3;

 

#在已存在的表上创建多列索引

create index index11_duo on borrow(T_time,B_time);

#查看表结构

show create TABLE index3;

 

#在已存在的表上创建空间索引

create SPATIAL index index12_sp on index6(space);

#查看表结构

show create TABLE index6;

 

#用alter table 语句来创建普通索引

alter table index1 add index index1_altername(name(10));

#查看表结构

show create TABLE index1;

 

#用alter table 语句来创建唯一

alter table index2 add unique index2_altername(name(10));

#查看表结构

show create TABLE index2;

 

#用alter table语句创建全文索引

alter table index3 add FULLTEXT index3_alterquan(info);

#查看表结构

show create TABLE index3;

 

#用alter  table 语句创建单列索引

alter table index4 add index index4_alterdan(subject);

 

#用alter table语句创建多列索引

alter table borrow add index index4_alterduo(T_time,B_time);

 

#用alter table语句创建空间索引

alter table index6 add SPATIAL index index5_alterspace(space);

 

#删除索引

show create TABLE index6;

#drop index 索引名 on 表名;

drop index index5_alterspace on index6;

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL是一种流行的关系型数据库管理系统,具有易学易用、高性能和开源的特点。要想从入门到精通MySQL,需要掌握以下几个方面。 首先,了解MySQL的基本概念和架构。理解数据库、表、字段、索引和查询等基础概念,并了解MySQL的客户端-服务器架构以及数据的存储和查询过程。 其次,学习MySQL的安装和配置。学会如何下载、安装和配置MySQL服务器,并了解MySQL的配置文件和常见配置选项。 然后,熟悉MySQL的SQL语言。学习如何使用SQL语句进行数据的插入、更新、删除和查询。掌握SQL语句的基本语法和常用的查询操作,如JOIN、GROUP BY和ORDER BY等。 接着,了解MySQL的优化和调优技巧。学习如何通过创建合适的索引、优化查询语句和调整服务器参数等方式提高MySQL的性能。掌握查询执行计划的分析方法和索引的设计原则。 最后,深入学习MySQL的高级特性和扩展功能。学习如何使用存储过程、触发器和视图等高级特性,以及如何使用复制、分区和集群等扩展功能。同时,了解MySQL的安全机制和备份恢复策略,确保数据的安全性和可靠性。 通过以上的学习和实践,就可以从入门逐步进阶,最终掌握MySQL的各种特性和技巧,成为一名MySQL的专家。当然,实际的学习过程中还需要大量的实践和项目经验积累,不断提升自己的技术能力和解决问题的能力。 ### 回答2: 《MySQL入门到精通》是一本由李波撰写的MySQL学习指南。该书详细介绍了MySQL数据库的基础知识和高级应用技巧,适合初学者和进阶学习者阅读。 该书的前几章主要介绍了数据库的基本概念和MySQL的安装与配置方法。作者通过简明扼要的语言,帮助读者了解数据库的概念、结构和基本操作,以及如何在各种操作系统上安装和配置MySQL。 接下来的几章主要介绍了SQL语言的基本知识和常用操作。作者通过实例演示和练习题,详细讲解了SQL的语法、查询、插入、更新和删除操作,以及各种约束和函数的使用。 随后的章节逐渐深入,介绍了MySQL数据库的高级应用技巧和性能优化方法。作者详细介绍了索引的原理和使用方式,以及如何设计和优化数据库模型,提高查询和执行效率。此外,作者还介绍了如何进行备份和恢复数据库,以及如何保护数据库的安全性。 最后几章则介绍了MySQL数据库在Web开发中的应用。作者详细介绍了如何使用PHP和MySQL进行数据交互,以及如何利用MySQL实现用户认证和权限控制等功能。 总的来说,该书通过丰富的示例和实践操作,帮助读者系统全面地了解和掌握MySQL数据库使用。无论是初学者还是有一定经验的开发人员,都可以通过阅读该书有效提升自己的MySQL水平。 ### 回答3: 《MySQL入门到精通李波》是一本以MySQL数据库为主题的书籍,旨在帮助读者从零开始学习MySQL,并逐步成为MySQL专家。 首先,书中会介绍MySQL数据库的基本概念、结构和工作原理,以及在不同操作系统下的安装和配置方法。读者可以从中了解MySQL的基本特性,如数据类型、表、索引等,以及MySQL与其他数据库系统的差异。 第二,书中会逐步引导读者学习SQL语言,这是使用MySQL的必备知识。读者将学习SQL的基本语法和常用操作,如查询数据、插入、更新和删除等。此外,书中还会介绍高级的SQL操作和性能优化技巧,以提升数据库的效率和查询速度。 第三,书中会详细介绍MySQL的高级功能和特性。读者将学习如何进行数据库的备份与恢复、事务管理以及数据安全等方面的知识。同时,还会介绍MySQL的集群和分布式架构,以及如何进行数据库的水平和垂直拆分,以满足大规模应用的需求。 最后,书中还会介绍MySQL的性能调优和故障处理方法。读者将学习如何监控数据库的性能指标,以及如何调整数据库配置和优化查询语句,以提高数据库的性能和稳定性。同时,还会介绍如何处理数据库故障和恢复数据的方法。 总之,通过《MySQL入门到精通李波》,读者可以系统地学习MySQL数据库的基本知识和高级技巧,从而成为一名熟练的MySQL专家。无论是初学者还是有一定经验的开发人员,都可以通过这本书提升自己的数据库技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值