为什么要创建索引?

    在此本人也带着相同的疑问,能够解释的仅仅是:为了减少数据库查询时所需要的速度。如果正常查询和索引查询所需时间相差很多倍时我们自然是需要索引的了。

想要知道结果,只能等我学得更加深入一点咯。

创建索引

创建索引有三种方法:(1)在创建表时创建索引; (2)使用ALTER TABLE 语句创建索引;(3)使用CREATE INDEX语句创建索引。

创建索引的类型有:普通索引(INDEX),唯一索引(UNIQUE INDEX),全文索引(FULLTEXT INDEX),空间索引(SPATIAL INDEX);其中全文索引,空间索引必须在MyISAM存储引擎下创建,且全文索引必须在数据类型为:CHAR、VARCHAR和TEXT的列上建立。

下面进行举例:

一、创建表时创建索引

1、创建普通索引

 CREATE TABLE T1
(
id INT NOT NULL,
    name CHAR(50) NULL,
   INDEX SingleIdx(name)
)

创建普通索引的语句为INDEX [索引名](列名),其中列名可以为多个,即以多个关键字创建索引。

2、创建唯一索引

CREATE TABLE T1
(
id INT NOT NULL,
name CHAR(30) NOT NULL,
UNIQUE INDEX UniqIdx(id)
)

   创建唯一索引的语句为 UNIQUE INDEX [索引名](列名)

3、创建全文索引

CREATE TABLE T1
(
id INT NOT NULL,
name CHAR(30) NOT NULL,
age INT NOT NULL,
info VARCHAR(255),
FULLTEXT INDEX FullTxtIdx(info)
) ENGINE=MyISAM;

  创建全文索引的语句为 FULLTEXT INDEX [索引名](列名),  其中存储引擎为MyISAM

  4、创建空间索引

CREATE TABLE T1
(
g GEOMETRY NOT NULL,
SPATIAL INDEX spatLdx(g),
) ENGINE = MyISAM;

  创建空间索引的语句为 FULLTEXT INDEX [索引名](列名),  其中存储引擎为MyISAM

二、在已有表上创建索引

  1、使用ALTER TABLE 语句创建索引

      其中基本语法为: ALTER TABLE table_name ADD [索引种类] [索引名](字段); 

      如:

      普通索引: ALTER TABLE book ADD INDEX BkNameIdx(bookname(30) ); 

      唯一索引: ALTER TABLE book ADD UNIQUE INDEX UniqidIdx( bookId ); 

  全文索引: ALTER TABLE book ADD FULLTEXT INDEX infoIdx( info); 

  空间索引: ALTER TABLE book ADD SPATIAL INDEX spatIdx( g ); 

     2、使用CREATE INNDEX语句创建索引

      其中基本语法为:

  CREATE [索引种类] INDEX [索引名] ON [表名](字段名)

      如:

      普通索引: CREATE INDEX BkNameIDX ON book(bookname); 

      唯一索引: CREATE UNIQUE INDEX UniqidIdx ON book( bookId ); 

  全文索引: CREATE FULLTEXT INDEX ON T1(info); 

  空间索引: CREATE SPATIAL INDEX spatIdx ON T1(g); 

     3、删除索引

     a、用ALTER TABLE 删除:

 ALTRER TABLE [表名] DROP INDEX [索引名];

  b、用DROP INDEX删除:

 DROP INDEX [索引名] ON [表名];

mysql基础操作学习笔记(2)----索引的更多相关文章

  1. mysql基础操作学习笔记(一)

    1前期准备: SQL语言包涵以下4个部分: (1)数据定义语言(DDL):包括DROP, CREATE, ALTER等语句 (2)数据操纵语言(DML):包括INSERT, UPDATE, DELET ...

  2. Mysql高级操作学习笔记:索引结构、树的区别、索引优缺点、创建索引原则(我们对哪种数据创建索引)、索引分类、Sql性能分析、索引使用、索引失效、索引设计原则

    Mysql高级操作 索引概述: 索引是高效获取数据的数据结构 索引结构: B+Tree() Hash(不支持范围查询,精准匹配效率极高) 树的区别: 二叉树:可能产生不平衡,顺序数据可能会出现链表结构 ...

  3. MySQL 5.6学习笔记(索引的创建与删除)

    1. 创建索引 1.1 创建新表时同时建立索引 语法: create table table_name[col_name data_type] [unique|fulltext|spatial][in ...

  4. MySQL基础操作&&常用的SQL技巧&&SQL语句优化

    基础操作     一:MySQL基础操作         1:MySQL表复制             复制表结构 + 复制表数据             create table t3 like t ...

  5. MYSQL 基础操作

    1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...

  6. mySQl数据库的学习笔记

    mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...

  7. MYSQL视图的学习笔记

    MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...

  8. mysql数据库优化课程---13、mysql基础操作

    mysql数据库优化课程---13.mysql基础操作 一.总结 一句话总结:mysql复制表,索引,视图 1.mysql如何复制表? like select * 1.复制表结构 create tab ...

  9. Objective-c基础知识学习笔记

    Objective-c基础知识学习笔记(一) 一直有记录笔记的习惯.但非常久没分享一些东西了,正好上半年開始学习IOS了,如今有空写点.因开发须要,公司特意为我们配置了几台新MAC.还让我们自学了2周 ...

随机推荐

  1. 我理解的Android加载器

    Android的加载器(loader)是从Android 3.0开始出来的东西.要理解这里需要先理解为什么会出现加载器(也有地方把它说成是装载器)呢? 如果没有加载器... 首先Activity是我们 ...

  2. 订餐App回顾与总结

    MY-HR 成员: 角色分配 学号 博客园 丘惠敏 PM项目经理 201406114203 http://www.cnblogs.com/qiuhuimin/ 郭明茵 用户 201406114204 ...

  3. JavaScript一些函数

    1.prompt()函数:有两个参数,一个是显示用户输入框上面的标签,另一个是输入框的初始值.用来接收用户输入的值,然后把它返回到代码中: 例如: <doctype html> <h ...

  4. WebApi中跨域解决办法

    在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案.由于时间有限,本文不会深入. 笔者遇到的问题是Js调用WebAPI中的数据进行跨域的场景.涉及若干跨域方案: 方案1:j ...

  5. 整理的有用的一些EF的CommonDAL小封装

    CommonDAL封装: using System; using System.Collections.Generic; using System.Data.Entity; using System. ...

  6. CentOS修改服务器系统时间

    linux安装完毕后,一般都是国外的世界,一点都不方便设置任务,或者导致网站获取本地的时间错乱,所以就需要把服务器的时间改为和本地时间一致,也就是换成中国的时间. 第一条指令:date –s '201 ...

  7. 硅谷新闻2--禁止viewpager预加载

    ContentFragment.java class MyOnPageChangeListener implements ViewPager.OnPageChangeListener { ..... ...

  8. [翻译]:SQL死锁-为什么会出现死锁

    下面这篇对理解死锁非常重要,首先死锁是如何产生的我们要清楚. We already know why blocking occurs in the system and howto detect an ...

  9. PHP控制前台弹出对话框

    应用场景: 微信授权登录过程中,需要用户确认,故衍生此需求: 相应的逻辑不放在前端的原因是,此部分逻辑属于偏功能业务,所以放在后端,方便统一管理. 解决办法: 通过php echo出javascrip ...

  10. mvc项目架构分享系列之架构搭建之Infrastructure

    项目架构搭建之Infrastructure的搭建 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...