MySQL索引创建、删除、查看

主键索引

??PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引。

  • ALTER TABLE ‘tablename‘ ADD PRIMARY KEY("column");

普通索引

  • 直接创建索引:
    CREATE INDEX ‘indexname‘ ON ‘tablename‘(‘column‘(‘account‘));
  • 修改表结构的方式创建索引:
    ALTER TABLE ‘tablename‘ ADD INDEX ‘indexname‘(‘column‘(‘account‘));
  • 创建表的时候创建索引:
    CREATE TABLE ‘tablename‘(
    INDEX ‘indexname‘(‘column‘(‘account‘))
    );

唯一索引

??唯一索引的列必须是唯一的,但是允许有null值。如果是组合索引,则列值的组合必须唯一。

  • 创建唯一索引
    CREATE UNIQUE INDEX ‘indexname‘ ON ‘tablename‘(‘column‘(‘account‘));
  • 改变表结构
    ALTER TABLE ‘tablename‘ ADD UNIQUE ‘indexname‘(‘column‘(‘account‘));
  • 创建表的时候创建唯一索引:
    CREATE TABLE ‘tablename‘(
    UNIQUE ‘indexname‘(‘column‘(‘account‘))
    );

全文索引

??对text等文本字段建立索引。

  • 创建全文索引
    CREATE FULLTEXT INDEX ‘indexname‘ ON ‘tablename‘(‘column‘);
  • 改变表结构
    ALTER TABLE person ADD FULLTEXT ‘indexname‘(‘column‘);
  • 创建表的时候创建全文索引
    CREATE TABLE ‘tablename‘(
    FULLTEXT ‘indexname‘(‘column‘)
    );

组合索引

??组合索引是最左前缀。

  • 创建组合索引
    ALTER TABLE person ADD INDEX idx_lastname_firstname(lastname(10),firstname(10));
    这样子相当于创建了两组组合索引:

    • -lastname
    • -lastname,fistname

查看索引

  • SHOW INDEX FROM ‘tablename‘;

删除索引

    • 删除索引:
      DROP INDEX ‘indexname‘ ON ‘tablename‘;
    • 改变表结构:
      ALTER TABLE ‘tablename‘ DROP INDEX ‘indexname‘;
    • 删除PRIMARY KEY索引
      ALTER TABLE ‘tablename‘ DROP PRIMARY KEY;
时间: 2025-01-23 22:51:53

MySQL索引创建、删除、查看的相关文章

MySQL索引创建与删除,MySQL存储引擎的配置

MySQL索引创建与删除 1.1 问题 本案例要求熟悉MySQL索引的类型及操作方法,主要练习以下任务: 普通索引.唯一索引.主键索引的创建/删除 自增主键索引的创建/删除 建立员工表yg.工资表gz,数据内容如表-1.表-2所示,设置外键实现同步更新与同步删除 表-1 员工表yg的数据 表-2 工资表gz的数据 1.2 步骤 实现此案例需要按照如下步骤进行. 步骤一:索引的创建与删除 创建表的时候指定INDEX索引字段 创建库home: mysql> create database home;

MySQl索引创建

一.什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍. 假设我们创建了一个名为people的表: CREATE TABLE people ( p

mysql 索引创建规则

1.表的主键.外键必须有索引:2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引: 5.索引应该建在选择性高的字段上: 6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引: 7.复合索引的建立需要进行仔细分析:尽量考虑用单字段索引代替: A.正确选择复合索引中的主列字段,一般是选择性较好的字段: B.复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单

mysql索引创建和使用细节(二)

上篇粗略记录当mysql字段类型是string,传入int类型参数后失效当问题. 现在测试下mysql字段是int类型,传参string类型会发生什么. 题外话,最近膝盖手术后还在家养伤中,只怪自己以前骑车不注意休息保养,经常长途骑行出去玩,把膝盖骑费了(抽取积液+切除膝盖囊肿手术),搞得现在哪都去不了,已经一周没下楼走走. [索引失效] 二. 单字段索引:字段是INT类型,传入string类型参数 MySQL [test_db]> show create table test_users\G;

mysql数据库创建删除带横杠的数据库名

mysql> create database d-d; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-d' at line 1 1064报错:该错误一般出现在表名或者字段名设计过程中出现了mysql关键字导致的.问题确定是数据库名字的

MySQL索引相关知识

MySQl索引创建 一.什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍. 假设我们创建了一个名为people的表: CREATE TABLE

Mysql中索引的 创建,查看,删除,修改

创建索引 MySQL创建索引的语法如下: ? 1 2 3 CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON table_name (index_col_name,...) 其中对应的语法变量信息如下: [UNIQUE|FULLTEXT|SPATIAL]中括号中的这三个关键字表示创建的索引类型,它们分别表示唯一索引.全文索引.空间索引三种不同的索引类型.如果我们不指定任何关键字,则默认为普通索引.inde

MySQL索引 查看、创建、删除

1.索引类型 创建索引时,可规定索引能否包含重复值.如不包含,则索引应创建为PRIMARY KEY 或 UNIQUE 索引.对于单列惟一性索引,这保证单列不包含重复的值.对于多列惟一性索引,保证多个值的组合不重复. PRIMARY KEY 索引和 UNIQUE 索引非常类似.事实上,PRIMARY KEY 索引仅是一个具有名称 PRIMARY 的 UNIQUE 索引.这表示一个表只能包含一个 PRIMARY KEY,因为一个表中不可能具有两个同名的索引. 2.索引作用 一级索引, 简单的理解可以

MySQL索引的创建,查看,删除

在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引. 1.ALTER TABLE ALTER TABLE用来创建普通索引.UNIQUE索引或PRIMARY KEY索引. ALTER TABLE table_name ADD INDEX index_name (column_list) ALTER TABLE table_name ADD UNIQUE (column_list) ALTER TABLE table_name