SQL -- 索引

SQL – 索引

SQL – 索引

Table of Contents

  • primary key
  • auto_increment
  • unique
  • index 普通索引
  • 全文索引
  • default

primary key

  create table user2 (
  id int PRIMARY KEY,
  username varchar(20)
  );
  show tables;
  drop table user2;

create table user2 (
  id int,
  username varchar(20),
  PRIMARY KEY (id)
  );
  drop table user2;

auto_increment

auto_increment 必须用在 primary_key 上

create table xxx (
id int(10) unsigned primary key auto_increment,
) auto_increment=1;                  # 表示从 1 开始计算

unique

防止重复, 一般是注册用户名, 用户邮箱等

create table test1 (
id int unsigned unique,
username varchar(30) not null
);
drop table test1

index 普通索引

create index INDEX_NAME on TABLE_NAME (COLUMN) using btree;  # 默认是 btree, 可以是 hash
alter table TABLE_NAME add index INDEX_NAME (COLUMN)

多列索引

alter table TABLE_NAME add index INDEX_NAME (COLUMN1, COLUMN2, COLUMN3)
drop index INDEX_NAME on TABLE_NAME

备注: COLUMN 如果是 text 类型, 必须指定 length, COLUMN(length), 使用长度还可以优化查找效率

索引的使用场景:

where ... LIKE ‘xxx%‘;
where ... LIKE ‘%xxx‘;    # 不会使用索引

索引大大提高了查询速度, 也会降低更新表的速度, insert, update 和 DELETE. 更新表时, MySQL 不仅要保存数据, 还要保存索引文件

全文索引

alter table TABLE_NAME add fulltext (COLUMN)

default

default 就是插入的时候不指定值的时候自动赋予的值

create table time1 (
tm timestamp unique default now(),
username varchar(30)not null
);
drop table time1;
时间: 2024-11-05 12:19:25

SQL -- 索引的相关文章

SQL索引一步到位

SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 下面举两个简单的例子: 图书馆的例子:一个图书馆那么多书,怎么管理呢?建立一个字母开头的目录,例如:a开头的书,在第一排,b开头的在第二排, 这样在找什么书就好说了,这个就是一个聚集索引,可是很多人借书找某

sql 索引 的建立

(From:http://54laobaixing.blog.163.com/blog/static/57843681200952411133121/) 假设你想找书中的某一个句子.你可以一页一页地逐页搜索,但这会花很多时间.而通过使用索引, 你可以很快地找到你要搜索的主题.      表的索引与附在一本书后面的索引非常相似.它可以极大地提高查询的速度.对一个较大的表来说, 通过加索引,一个通常要花费几个小时来完成的查询只要几分钟就可以完成.因此没有理由对需要频繁查 询的表增加索引.   注意:

SQL索引器

1.什么是SQL索引器 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 数据库索引好比是一本书前面的目录,能加快数据库的查询速度. 例如这样一个查询:select * from table1 where id=44.如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止:有了索引之后(必须是在ID这一列上建立的索引),直接在索引里面找44(也就是在ID这一列找),就可以得知这一行的位置,也就是找到了这一行.可见,索引是用来定位的. 2.聚簇

SQL索引学习-索引结构

前一阵无意中和同事讨论过一个SQL相关的题(通过一个小问题来学习SQL关联查询),很惭愧一个非常简单的问题由于种种原因居然没有回答正确,数据库知识方面我算不上技术好,谈起SQL知识的学习我得益于2008年进的一家公司,有几个DBA技术相当专业,正好手上有一个项目遇到了一些数据库查询性能问题,就试着想办法优化,于是自己将相法和DBA沟通后,居然得到了他们的赞同,让我信心大增,后来一段时间我又主动找他们聊了一些其它的知识,所以在数据库索引这块我算是相对一般的.net程序员要更加有见解一些.当时我们部

数据库性能优化一:SQL索引一步到位

SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 下面举两个简单的例子: 图书馆的例子:一个图书馆那么多书,怎么管理呢?建立一个字母开头的目录,例如:a开头的书,在第一排,b开头的在第二排,这样在找什么书就好说了,这个就是一个聚集索引,可是很多人借书找某某

【SQL server初级】SQL索引(一)

SQL索引[一](此文章为"数据库性能优化二:数据库表优化"附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 下面举两个简单的例子: 图书馆的例子:一个图书馆那么多书,怎么管理呢?建立一个字母开头的目录,例如:a开头的书,在第一排

SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一)

SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 下面举两个简单的例子: 图书馆的例子:一个图书馆那么多书,怎么管理呢?建立一个字母开头的目录,例如:a开头的书,在第一排,b开头

怎样才能充分利用SQL索引

怎样才能充分利用SQL索引 背景:目前WEB的普及太快,很多网站都会因为大流量的数据而发生服务器习惯性死机,一个查询语句只能适用于一定的网络环境.没有优化的查询当遇上大数据量时就不适用了. 本文主旨:讨论什么情况下能利用上索引. 索引:创建索引可以根据查询业务的不同分为两种:单一列的索引,联合索引. 顾名思义,单一列索引就是指在表的某一列上创建索引,联合索引是在多个列上联合创建索引. 优缺点比较:  1):索引所占用空间:单一列索引相对要小. 2):索引创建时间:单一列索引相对短. 3):索引对

转载:SQL索引一步到位

原文: http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱. 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时

SQLAdvisor美团SQL索引优化建议工具

SQLAdvisor美团SQL索引优化建议工具 前言 Part1:写在最前 SQLAdvisor是美团开源的一款SQL索引优化建议工具,是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具.它基于MySQL原生态词法解析,结合分析SQL中的where条件.聚合条件.多表Join关系 给出索引优化建议.目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致.本文记录对该工具的初步安装和