iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >使用MySQL索引如何快速检索数据库的案例
  • 382
分享到

使用MySQL索引如何快速检索数据库的案例

2024-04-02 19:04:59 382人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关使用Mysql索引如何快速检索数据库的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、索引的概念1、索引是一个排序的列表,在这个列表中存

这篇文章将为大家详细讲解有关使用Mysql索引如何快速检索数据库的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、索引的概念

1、索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址 (类似于C语言链表通过指针指向数据记录的内存地址) 。

2、使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度。

3、索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容。

4、索引是表中一列或者若干列值排序的方法。

5、建立索引的目的是加快对表中记录的查找或排序。

二、索引的作用

1、设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度,这是创建索引的最主要的原因。
2、当表很大或查询涉及到多个表时,使用索引可以成千,上万倍地提高查询速度。
3、可以降低数据库的I/O成本,并且索引还可以降低数据库的排序成本。
4、通过创建唯一性索引,可以保证数据表中每一行数据的唯一性。
5、可以加快表与表之间的连接。
6、在使用分组和排序时,可大大减少分组和排序的时间。

三、索引的副作用

1、索引需要占用额外的磁盘空间。

  • 对于 MyISAM 引擎而言,索引文件和数据文件是分离的,索引文件用于保存数据记录的地址。

  • 而 InnoDB 引擎的表数据文件本身就是索引文件。

2、在插入和修改数据时要花费更多的时间,因为索引也要随之变动。

四、创建索引的原则依据

索引随可以提升数据库查询的速度,但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。

1、表的主键、外键必须有索引。因为主键具有唯一性,外键关联的是主表的主键,查询时可以快速定位。
2、记录数超过300行的表应该有索引。如果没有索引,每次查询都需要把表遍历一遍,会严重影响数据库的性能。
3、经常与其他表进行连接的表,在连接字段上应该建立索引。
4、唯一 性太差的字段不适合建立索引。
5、更新太频繁地字段不适合创建索引。
6、经常出现在 where 子句中的字段,特别是大表的字段,应该建立索引。
7、索引应该建在选择性高的字段上。
8、索引应该建在小字段.上,对于大的文本字段甚至超长字段,不要建索引。

五、索引的分类和创建

在做之前先用这张表做示范
create table member (id int(10),name varchar(10),Cardid varchar(10),phone int(11),address varchar(50),remark text);

(一)、普通索引

普通索引:最基本的索引类型,没有唯一性之类的限制。

1、 直接创建索引
CREATE INDEX  索引名  ON  表名 (列名[(length)]);

#(列名(length)):length是可选项,下同。如果忽略 length 的值,则使用整个列的值作为索引。如果指定使用列前的 length 个字符来创建索引,这样有利于减小索引文件的大小。
#索引名建议以“_index”结尾。

使用MySQL索引如何快速检索数据库的案例
使用MySQL索引如何快速检索数据库的案例

2、修改表方式创建
ALTER TABLE 表名 ADD INDEX 索引名 (列名);例:alter table member ADD INDEX phone_index (phone);select phone from member;

使用MySQL索引如何快速检索数据库的案例

3、创建表的时候指定索引
CREATE TABLE 表名 ( 字段1 数据类型,字段2 数据类型[,...],INDEX 索引名 (列名));例:create table test(id int(4) not null,name varchar(10) not null,cardid varchar(18) not null,index id_index (id));show create table test;

使用MySQL索引如何快速检索数据库的案例

(二)、唯一索引
与普通索引类似,但区别是唯一索引列的每个值都唯一。
唯一索引允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。
1、直接创建唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名(列名);

使用MySQL索引如何快速检索数据库的案例
使用MySQL索引如何快速检索数据库的案例
使用MySQL索引如何快速检索数据库的案例

2、修改表的方式创建
ALTER TABLE 表名 ADD UNIQUE 索引名 (列名);例:alter table member add unique name_index (cardid);

为了方便实验,我先删除了之前的索引
使用MySQL索引如何快速检索数据库的案例

使用MySQL索引如何快速检索数据库的案例

3、创建表的时候指定
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...],UNIQUE 索引名 (列名));

使用MySQL索引如何快速检索数据库的案例

(三)、主键索引

是一种特殊的唯一索引,必须指定为“PRIMARY KEY”。
一个表只能有一个主键,不允许有空值。 添加主键将自动创建主键索引。

使用MySQL索引如何快速检索数据库的案例
使用MySQL索引如何快速检索数据库的案例

  • ALTER TABLE 表名 ADD PRIMARY KEY (列名);

(四)、组合索引(单列索引与多列索引)

组合索引:可以是单列上创建的索引,也可以是在多列上创建的索引。需要满足最左原则,因为 select语句的 where 条件是依次从左往右执行的,所以在使用 select 语句查询时 where 条件使用的字段顺序必须和组合索引中的排序一致,否则索引将不会生效。
CREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,列名3 数据类型,INDEX 索引名(列名1,列名2,列名3));select * from 表名 where 列名1='...' AND 列名2='...' AND 列名3='...';

使用MySQL索引如何快速检索数据库的案例

(五)、全文索引

适合在进行模糊查询的时候使用,可用于在一篇文章中检索文本信息。
在 mysql5.6 版本以前FULLTEXT 索引仅可用于 MyISAM 引擎,在 5.6 版本之后 innodb 引擎也支持 FULLTEXT 索引。全文索引可以在 CHAR、VARCHAR 或者 TEXT 类型的列上创建。每个表只允许有一个全文索引。
CREATE FULLTEXT INDEX 索引名 ON 表名 (列名);例:select * from member;create fulltext index name_index on member (name);
  • 修改表的方式创建

ALTER TABLE 表名 ADD FULLTEXT 索引名 (列名);
  • 创建表的时候指定索引

CREATE TABLE 表名 (字段1 数据类型[,...],FULLTEXT 索引名 (列名));

#数据类型可以为 CHAR、VARCHAR 或者 TEXT

  • 使用全文索引查询

SELECT * FROM 表名 WHERE MATCH(列名) AGaiNST('查询内容');例:select * from member where match(remark) against('this is vip');

使用MySQL索引如何快速检索数据库的案例

六、查看索引

show index from 表名;show index from 表名\G; 竖向显示表索引信息
show keys from 表名;show keys from 表名\G;

使用MySQL索引如何快速检索数据库的案例

Table表的名称
Non_unique如果索引不能包括重复词,则为 0;如果可以,则为 1。
Key_name索引的名称。
Seq_in_index索引中的列序号,从 1 开始。
Column_name列名称。
Collation列以什么方式存储在索引中。在 Mysql 中,有值‘A’(升序)或 NULL(无分类)
Cardinality索引中唯一值数目的估计值。
Sub_part如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为 NULL。
Packed指示关键字如何被压缩。如果没有被压缩,则为 NULL
Null如果列含有 NULL,则含有 YES。如果没有,则该列含有 NO
Index_type用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)
Comment备注

七、删除索引

1、直接删除索引
DROP INDEX 索引名 ON 表名;2、修改表方式删除索引
ALTER TABLE 表名 DROP INDEX 索引名;3、删除主键索引
ALTER TABLE 表名 DROP PRIMARY KEY;

八、实例

案例:为某商场做一个会员卡的系统。这个系统有一个会员表,有下列字段:会员编号  INT
会员姓名  VARCHAR(10)会员身份证号码  VARCHAR(18)会员电话  INT(11)会员住址  VARCHAR (50)会员备注信息  TEXT 

create table member (id int(10),name varchar(10),cardid varchar(18),phone int(11),address varchar(50),remark text);alter table member add primary key (id);create index name_index on member (name); create unique index cardid_index on member (cardid);alter table member add fulltext remark_index (remark);会员编号,作为主键,使用 PRIMARY KEY
会员姓名,如果要建索引的话,那么就是普通的 INDEX
会员身份证号码,如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复)会员备注信息,如果需要建索引的话,可以选择 FULLTEXT,全文搜索。
不过 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。

关于“使用MySQL索引如何快速检索数据库的案例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: 使用MySQL索引如何快速检索数据库的案例

本文链接: https://www.lsjlt.com/news/55002.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用MySQL索引如何快速检索数据库的案例
    这篇文章将为大家详细讲解有关使用MySQL索引如何快速检索数据库的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、索引的概念1、索引是一个排序的列表,在这个列表中存...
    99+
    2024-04-02
  • 数据库索引的魔力:加速数据检索的捷径
    索引对于数据库性能至关重要,它就像一本包含数据库内容的目录,帮助数据库快速找到所需数据。在海量数据时代,索引的作用不容忽视,它是加速数据检索的关键,本文将深入探讨索引的魔力以及如何利用索引优化数据库性能。 索引的工作原理 索引是一种数据结...
    99+
    2024-04-02
  • 如何使用NumPy在Linux上快速索引数据?
    NumPy是一个强大的Python库,用于科学计算和数据分析。它提供了许多功能强大的数组和矩阵操作,是数据科学家、研究人员和工程师的重要工具。在本文中,我们将介绍如何使用NumPy在Linux上快速索引数据。 安装NumPy 在Linu...
    99+
    2023-06-13
    索引 linux numy
  • 数据库索引如何使用
    数据库索引是一种优化数据库查询性能的技术。通过使用索引,可以快速定位到数据库中存储的数据,减少查询的时间和资源消耗。使用数据库索引的...
    99+
    2023-08-17
    数据库
  • mongoDB数据库索引快速入门指南
    目录MongoDB 索引1. 开始与准备数据2. 创建索引前3. 创建索引 createIndex4. 创建索引后6.唯一索引与符合索引①唯一索引②复合索引MongoDB 索引 索引...
    99+
    2024-04-02
  • 数据库索引地图:指引数据检索的寻宝之路
    在浩瀚的数据海洋中,索引充当着宝贵的路标,指引数据检索的捷径。数据库索引地图绘制了这些路标的位置,助力快速高效的数据访问。 索引的类型 数据库索引有多种类型,每种类型都满足特定的搜索模式: B-树索引:用于快速检索数据,尤其擅长范围查询...
    99+
    2024-04-02
  • 数据库字段索引的艺术:提升数据检索速度和效率
    索引的工作原理 索引与图书馆的索引书类似,它指向特定数据行的指针。在关系数据库管理系统 (RDBMS) 中,索引通常是 B 树或哈希表等数据结构。当查询指定 indexed 字段上的条件时,RDBMS 将使用索引快速查找满足条件的行,而无...
    99+
    2024-03-12
    数据库索引是提高数据检索性能的关键技术 它通过创建数据结构来快速查找特定值 从而减少数据库扫描的行数。精心设计和实现索引可以显着提升数据检索速度和效率 对数据密集型应用程序至关重要。
  • 数据库索引的未来:探索数据检索的无限可能
    人工智能和机器学习 人工智能 (AI) 和机器学习 (ML) 正在改变索引设计和维护方式。AI 算法可以分析数据模式并自动识别最佳索引策略。ML 模型还可以预测查询负载并动态调整索引,以优化性能。 NoSQL 数据库 NoSQL 数据库,...
    99+
    2024-04-02
  • 数据库索引的魔法:助力数据检索之旅
    索引的定义 索引是一种数据结构,它将数据库表中的列值映射到记录物理地址。当在索引列上执行查询时,数据库使用索引来查找匹配记录的物理地址,避免逐行扫描整个表。 索引的类型 数据库系统支持多种索引类型,根据存储和检索数据的不同方式而分类。常见...
    99+
    2024-04-02
  • mysql如何清除索引数据库
    今天就跟大家聊聊有关 mysql如何清除索引数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。mysql如何清除索引数据库1.在DOS窗口运行 ...
    99+
    2024-04-02
  • MongoDB数据库中如何使用索引
    本篇文章为大家展示了MongoDB数据库中如何使用索引,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  MongoDB的各种索引有哪些用法  1.单列索引  在字段...
    99+
    2024-04-02
  • 数据库索引的巅峰之旅:探索数据检索的新境界
    单列索引:开启索引之旅 单列索引是最基本的数据结构,它维护了一个按某一列排序的数据记录指针集合。当需要按该列进行搜索时,索引将提供一个指向数据的指针,从而大大加速检索速度。 多维索引:探索维度空间 随着数据维度的增加,单列索引逐渐捉襟见肘...
    99+
    2024-04-02
  • PHP如何使用NumPy索引快速访问数组?
    NumPy是Python中用于科学计算和数据分析的重要库,其中最强大的特性之一是NumPy数组的索引。NumPy数组的索引是一种非常快速和高效的方法,用于访问和修改数组的元素。在本文中,我们将介绍如何使用PHP实现NumPy数组的索引。 ...
    99+
    2023-09-04
    打包 numpy 索引
  • mysql数据库索引应用的示例分析
    mysql数据库索引应用的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、索引的概念    ...
    99+
    2024-04-02
  • 时序数据库的快速检索是怎么进行的
    本篇文章给大家分享的是有关时序数据库的快速检索是怎么进行的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Elasticsearch 是通过 L...
    99+
    2024-04-02
  • 数据库索引指南针:导航数据检索的迷宫
    数据库索引是对数据库表中数据结构的快速查找工具。它通过创建指向表中特定列或列组合的指针,从而显著提高数据检索性能。理解索引并将其有效应用至关重要,因为它可以极大地影响应用程序的性能和响应时间。 索引类型 聚集索引:将行物理存储在索引顺序...
    99+
    2024-04-02
  • 数据库索引解谜:揭开数据检索的隐藏秘密
    索引是数据库中一种至关重要的结构,用于加快对数据表的检索速度。通过创建索引,可以快速查找特定记录,从而减少搜索时间并提高查询性能。 索引的工作原理 索引本质上是一种数据结构,它存储了表中特定列的值及其所指向的记录位置。当对表进行查询时,数...
    99+
    2024-04-02
  • 洞悉数据库索引指南:解锁数据检索的潜能
    索引类型 数据库索引主要分为两大类: 结构化索引:创建在数据记录的物理结构中,按照指定列或列集排序。常見類型包括B樹索引和哈希索引。 非结构化索引:存储在单独的数据结构中,不影響數據記錄的物理順序。這種類型的索引包括全文索引、地理空間索...
    99+
    2024-04-02
  • MySQL索引如何创建和使用索引
    创建MySQL索引可以通过以下两种方式: 使用CREATE INDEX语句创建索引: CREATE INDEX index_na...
    99+
    2024-03-06
    MySQL
  • 如何使用 PHP 函数从数据库中检索数据?
    在 php 中,可以使用 mysqli_query() 函数检索数据库数据,并使用 mysqli_fetch_row()、mysqli_fetch_assoc() 和 mysqli_fe...
    99+
    2024-04-30
    数据库 php函数 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作