首页 > 数据库 >mysql 索引

mysql 索引

时间:2023-05-09 14:00:30浏览次数:36  
标签:hash 创建 查询 索引 mysql 唯一

mysql 索引
按存储方式区分:
一:b树,通常是使用b树这种方式,只有一个根节点,叶子节点之间彼此相连
二:hash,首先不能使用hash 索引排序,并且它只支持等值索引,比如 "=" "in()" "<=>"。
不支持键的部分匹配,因为计算hash 值的时候是根据整体索引值来计算的。
建立hash索引相比b树需要更长的时间。
按逻辑区分:
一:普通索引(NORMAL)
这个是最常用也是默认的索引类型,没有任何限制,就是加快系统的访问速度,
并且允许索引的列存在重复的值或者null 值。
二:主键索引(PRIMARY KEY)
专门为主键字段创建的索引,属于索引的一种,是唯一索引的特殊形式,索引列不允许有重复的值,也不允许有null 值。
三:唯一索引(UNIQUE)
跟普通索引类似,不同的是创建唯一索引的目的不是为了提高访问速度,而是保证索引列的唯一性,允许有空值。
如果是组合唯一索引,则组合必须是唯一的。
四:空间索引(SPATIAL)
存储引擎必须是myisam的表中创建,列类型必须是GEOMETRY且非空。
五:全文索引(FULLTEXT)
该索引主要用来查询文本中的关键字,只能在char,varchar或text 的列上创建,并且存储引擎必须是myisam 才支持此种索引类型。
允许索引列存在重复值或空值。对于大表而言,创建该索引非常消耗时间。
实际使用区分:
一:单列索引
顾名思义,索引中只包含表中的一列,可以使用普通索引,唯一索引,主键索引,全文索引
二:多列索引
又称为多列索引,复合索引。将表的多列组成一个索引,可以通过多个字段进行查询。但是只有查询条件中使用了这些字段中的第一个
字段时,索引才会被使用。比如 a,b,c 三列组合索引,查询条件中必须有a列。实际加速的查询条件组合情况有(a)(a,b)(a,b,c)。
注意没有(a,c)

标签:hash,创建,查询,索引,mysql,唯一
From: https://www.cnblogs.com/isyysblog/p/17384655.html

相关文章

  • MySQL(十九)MySQL事务日志(二)UndoLog
    MySQL(十九)MySQL事务日志(二)UndoLog1undo日志概述​ redolog是事务持久性的保障,而undolog则是事务原子性和一致性的保证,如上图,在事务中更新数据的前置操作其实是需要将数据写入到undolog方便回滚。​ 事务需要保证原子性,也就是事务中的操作要么全部完成、要么全部不做。......
  • You have an error in your SQL syntax; check the manual that corresponds to your
    问题描述显示在条件查询的sql语句那里报错问题解决本来我是习惯了使用servlet写数据库操作的,然后就直接忽略掉了,或者说,直接忘记了在jsp里面的sql语句怎么正确书写了;经过查阅资料发现,查询语句是这样写的:Stringsql="select*frombookwhereid="+id;......
  • Centos7安装MySQL详细步骤(配置开机自启)
    MySQL检查系统是否安装过mysql//检查系统中有无安装过mysqlrpm-qa|grepmysql//查询所有mysql对应的文件夹,全部删除whereismysqlfind/-namemysql卸载CentOS7系统自带mariadb#查看系统自带的Mariadb[root@CDH-141~]#rpm-qa|grepmariadbmariadb-libs-5.5......
  • MYSQL查询【全部表】和表【所有字段】
    最近在做一些关于BI的东西。记录下。数据库查询全部表名称和备注信息只能查询表名SHOWTABLES; 查询表名和表备注SELECTTABLE_NAMEtablename,TABLE_COMMENTremarkFROMINFORMATION_SCHEMA.TABLESWHEREtable_schema="xxxx_xxxx"andT......
  • HTAP for MySQL 在腾讯云数据库的演进
    摘要:MySQL在充分利用多核计算资源方面比较欠缺,无法同时满足在线业务和分析型业务的客户需求,而单独部署一套专用的分析型数据库意味着额外的成本和复杂的数据链路。本次主题将介绍腾讯云数据库为满足此类场景而在HTAPforMySQL产品方面进行的尝试。2023首届云数据库技术沙龙MySQ......
  • mysql主从复制
    一、概述将主库的数据变更同步到从库,从而保证主库和从库数据一直。主要功能:数据备份、失败迁移、读写分离、降低单库读写压力二、原理1.主库会把数据变更记录在二进制日志文件Binlog中。2.从库连接主库,读取Binlog日志,并写入自身中继日志relaylog。3.slave重做中继日志,将......
  • mysql 8 安装
    1环境说明(1)基础环境操作系统:CentOSLinuxrelease7.4.1708(Core)配置:4c8GB100GBmysql版本:mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz备份工具:percona-xtrabackup-8.0.32-26-Linux-x86_64.glibc2.17.tar.gz软件下载:wgethttps://downloads.percona.com/downloads/Per......
  • mysql 移动数据目录data后启动失败
    ###############################一、需要更改my.cnf中所有关于路径的参数二、更改binlog.index中的路径信息三、更改relaylog.index中的路径信息                   ###########################......
  • MySQL 中读写分离数据延迟
    MySQL中读写分离可能遇到的问题前言读写分离的架构基于客户端实现读写分离基于中间代理实现读写分离MySQL中如何保证主从数据一致循环复制问题主从同步延迟主从同步延迟的原因主从延迟如何处理强制走主库方案Sleep方案判断主从无延迟方案配合semi-sync......
  • MYSQL-幻读
    什么是幻读?事务隔离级别为可重复读时,幻读发生在当前读和快照读混合使用的情况下select*fromtable,正常查询为快照读select*fromtableforupdate,或者insert,delete等为当前读如果事务中仅存在快照读,则不会发生幻读的情况;测试如下:事务1中仅快照查询,则事务2提交事务后......