首页 > 数据库 >mysql索引创建

mysql索引创建

时间:2022-11-03 16:03:20浏览次数:39  
标签:语句 columnName 关键字 创建 索引 mysql 主键

1. 创建语句

* create语句创建索引  
	create index indexName on tableName (columnName(length));
	
* alter语句创建索引   
	alter yable tableName add index indexName(columnName);
	
* 建表时创建索引 
	CREATE TABLE tableName(  
	  id INT NOT NULL,   
	  columnName  columnType,
	  INDEX [indexName] (columnName(length))  
	);

2. 索引类型

  • FULLTEXT(全文索引)
    全文索引主要用来查找文本中的关键字,而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配。
    fulltext索引配合match against操作使用,而不是一般的where语句加like。它可以在create table,alter table ,create index使用,不过目前只有char、varchar,text 列上可以创建全文索引。(先查数据,再建索引,节省时间)
  • NORMAL(普通索引)
    普通索引是 MySQL 中最基本的索引类型,允许在定义索引的列中插入重复值和空值。
    关键字是 INDEX 或 KEY。
  • SPATIAL(空间索引)
    空间索引是对空间数据类型的字段建立的索引,使用 SPATIAL 关键字进行扩展。
    创建空间索引的列必须将其声明为 NOT NULL,空间索引只能在存储引擎为 MyISAM 的表中创建。
    空间索引主要用于地理空间数据类型 GEOMETRY。对于初学者来说,这类索引很少会用到。
  • UNIQUE(唯一索引)
    唯一索引与普通索引类似,不同的是创建唯一性索引的目的不是为了提高访问速度,而是为了避免数据出现重复。
    唯一索引列的值必须唯一,允许有空值。如果是组合索引,则列值的组合必须唯一。
    创建唯一索引通常使用 UNIQUE 关键字。
  • 主键索引
    顾名思义,主键索引就是专门为主键字段创建的索引,也属于索引的一种。
    主键索引是一种特殊的唯一索引,不允许值重复或者值为空。
    创建主键索引通常使用 PRIMARY KEY 关键字。不能使用 CREATE INDEX 语句创建主键索引。

3. 索引方法

  • BTREE
    存储在B-Tree中的数据是有序的,BTREE是一种多路平衡查询树,所以他的节点是天然有序的(左子节点小于父节点、父节点小于右子节点),所以对于范围查询的时候不需要做全表扫描
  • HASH
    Hash索引底层是哈希表,哈希表是一种以key-value存储数据的结构,多个数据在存储关系上是完全没有任何顺序关系的,所以,对于区间查询是无法直接通过索引查询的,就需要全表扫描。所以,哈希索引只适用于等值查询的场景

标签:语句,columnName,关键字,创建,索引,mysql,主键
From: https://www.cnblogs.com/jinxin1/p/16688356.html

相关文章

  • MySQL---逻辑架构
    逻辑架构逻辑结构剖析MySQL服务器处理客户端请求 Connectors:MySQL服务器之外的客户端程序;Managemen......
  • python 创建 dll 到 c++ 调用
    1.如果想要在c++中debug模式调试模式运行,windows下的话,需要安装时安装debug库2.安装cython3.编写pyx文件,例如demo.pyx:#cython:language_level=3cdefpub......
  • mysql datetime 精度问题
    记录一下mysqldatetime类型精度的坑业务中需要用到两个字段,开始时间start_time,截止时间end_time,根据实际业务场景,start_time取当天最早的那个时间点,end_time取当天时间......
  • MySQL导出表数据为Excel文件时变成E+15【原创】
    如标题所示,因为Excel数据格式变成E+15导致查出的数据不准确。上午百度也没搜出好的方法。想到了一个笨办法,先将文件导成txt,然后用UE列模式在数据前加一列单引号,在黏贴到Ex......
  • 什么是mysql数据库?MySQL的特点有哪些?
    MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Re......
  • flink cdc - mysql binlog配置
    binglog简介binlog是二进制日志,并且是事务安全性binlog记录了所有的DDL和DML(除了数据查问语句)语句应用场景监听配置流,广播配置捕获mysql变更的数据流mysqlbin......
  • [Spark streaming举例]-- 实时统计并且存储到mysql数据库中
    举例packagecom.scala.myimportorg.apache.spark.SparkConfimportorg.apache.spark.streaming.Durationsimportorg.apache.spark.streaming.StreamingContext/****@......
  • MySQL(二)
    约束约束(CONSTRAINT)是表级的强制规定.0.字段属性Unsigned无符号的整数该列数据不能为负数zerofill不足的位数,用0来填充自带unsigned1.非空约束......
  • idea插件Tranlation配置有道搜索引擎
    idea配置有道翻译引擎一、更换翻译引擎原因由于Google在2022年9月末宣布关闭GoogleTranslate在中国的服务,原本在chrome浏览器和idea上使用的google翻译引擎也不能正常使......
  • B站 MySQL 陈长宏老师讲课笔记day1
    B站MySQL数据库视频1.数据库的基本概念 1)数据库的英文单词:DataBase简称:DB 2)什么是数据库?  用户存储和管理数据的仓库(内存也存储数据,但关机数据就消失了,数据......