广告
返回顶部
首页 > 资讯 > 数据库 >MySQL索引类型Normal、Unique和Full Text的示例分析
  • 280
分享到

MySQL索引类型Normal、Unique和Full Text的示例分析

2024-04-02 19:04:59 280人浏览 安东尼
摘要

小编给大家分享一下Mysql索引类型NORMal、Unique和Full Text的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!mysql的索引类型有普通索引(normal),唯

小编给大家分享一下Mysql索引类型NORMal、Unique和Full Text的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

mysql的索引类型有普通索引(normal),唯一索引(unique)和全文索引(full text),合理使用索引可大大提升数据库的查询效率,下面是三种类型的索引的介绍

normal:这是最基本的索引,它没有任何限制,MyIASM中默认的BTREE类型的索引,是我们大多数情况下用到的索引。

unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复。例如身份证号用作索引时,可设置为unique。

full text : 表示全文搜索的索引,仅可用于 MyISAM 表。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,切记对于大容量的数据表,生成全文索引是一个非常消耗时间非常消耗硬盘空间的做法。

mysql索引类型Normal,Unique,Full Text区别

Normal:

表示普通索引,大多数情况下都可以使用

Unique:

约束唯一标识数据库表中的每一条记录,即在单表中不能用每条记录是唯一的(例如身份证就是唯一的),Unique(要求列唯一)和Primary Key(primary key = unique + not null 列唯一)约束均为列或列集合中提供了唯一性的保证,Primary Key是拥有自动定义的Unique约束,但是每个表中可以有多个Unique约束,但是只能有一个Primary Key约束。

mysql中创建Unique约束

Full Text:

表示全文收索,在检索长文本的时候,效果最好,短文本建议使用Index,但是在检索的时候数据量比较大的时候,现将数据放入一个没有全局索引的表中,然后在用Create Index创建的Full Text索引,要比先为一张表建立Full Text然后在写入数据要快的很多

总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见。

在实际操作过程中,应该选取表中哪些字段作为索引?

为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引,有7大原则:

1.选择唯一性索引

唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。

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

经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间。如果为其建立索引,可以有效地避免排序操作。

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

如果某个字段经常用来做查询条件,那么该字段的查询速度会影响整个表的查询速度。因此,为这样的字段建立索引,可以提高整个表的查询速度。

4.限制索引的数目

索引的数目不是越多越好。每个索引都需要占用磁盘空间,索引越多,需要的磁盘空间就越大。修改表时,对索引的重构和更新很麻烦。越多的索引,会使更新表变得很浪费时间。

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

如果索引的值很长,那么查询的速度会受到影响。例如,对一个CHAR(100)类型的字段进行全文检索需要的时间肯定要比对CHAR(10)类型的字段需要的时间要多。

6.尽量使用前缀来索引

如果索引字段的值很长,最好使用值的前缀来索引。例如,TEXT和BLOG类型的字段,进行全文检索会很浪费时间。如果只检索字段的前面的若干个字符,这样可以提高检索速度。

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

表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再需要。数据库管理员应当定期找出这些索引,将它们删除,从而减少索引对更新操作的影响。

注意:选择索引的最终目的是为了使查询的速度变快。上面给出的原则是最基本的准则,但不能拘泥于上面的准则。读者要在以后的学习和工作中进行不断的实践。根据应用的实际情况进行分析和判断,选择最合适的索引方式。

举个例子来说,比如你在为某商场做一个会员卡的系统。这个系统有一个会员表(大致字段如下):

会员编号   INT
会员姓名   VARCHAR(10)
会员身份证号码   VARCHAR(18)
会员电话   VARCHAR(10)
会员住址   VARCHAR(50)
会员备注信息  TEXT

那么这个会员编号,作为主键,使用 PRIMARY

会员姓名如果要建索引的话,那么就是普通的 INDEX

会员身份证号码如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复)

会员备注信息如果需要建索引的话,可以选择 FULLTEXT,全文搜索。

看完了这篇文章,相信你对“MySQL索引类型Normal、Unique和Full Text的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL索引类型Normal、Unique和Full Text的示例分析

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL索引类型Normal、Unique和Full Text的示例分析
    小编给大家分享一下MySQL索引类型Normal、Unique和Full Text的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MySQL的索引类型有普通索引(normal),唯...
    99+
    2022-10-18
  • mysql索引类型 normal, unique, full text
    normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候...
    99+
    2021-10-23
    mysql索引类型 normal unique full text
  • MySQL 索引分类中单列索引的示例分析
    本篇文章为大家展示了MySQL 索引分类中单列索引的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 一个已分区的表不支持全文本...
    99+
    2022-10-18
  • mysql权限和索引的示例分析
    这篇文章将为大家详细讲解有关mysql权限和索引的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql权限和索引mysql的最高用户是root,我们可以在数据...
    99+
    2022-10-18
  • Java中引用类型和值类型的示例分析
    这篇文章给大家分享的是有关Java中引用类型和值类型的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。值类型传值,引用类型传引用Demo:public class ReferDemo {   &n...
    99+
    2023-06-03
  • MySQL中单列索引和多列索引的示例分析
    这篇文章主要为大家展示了“MySQL中单列索引和多列索引的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中单列索引和多列索引的示例分析”这篇文...
    99+
    2022-10-18
  • MySQL数据类型和存储机制的示例分析
    小编给大家分享一下MySQL数据类型和存储机制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.1 数据类型概览数据类...
    99+
    2022-10-18
  • MySQL因数据类型转换导致执行计划使用低效索引的示例分析
    小编给大家分享一下MySQL因数据类型转换导致执行计划使用低效索引的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!查看表的索引情况mysql> show ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作