欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

索引

程序员文章站 2022-07-09 21:20:11
工作一直也没有把自己学到跟看到的一些东西记录下来,有些学到的东西很久没遇到,自己也有些模糊了。从今天开始记录一下,自己记录一遍是对自己的巩固,也是一种分享,虽然可能对于一些人来说分享的内容很浅,但也可能会帮助另一些人。 工作中有的时候一条sql很慢,这时候就就会进行sql的优化,sql优化有多方面, ......

什么是索引?

	索引是表的目录,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录。

索引的性能?

可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,
所以索引不是越多越好。
当表过于少,或者需要频繁的修改表的时候,会降低表的性能。不适合建立索引

索引的创建与分类?

oracle中是
	1,普通索引
			create index  index_num1 on table_name(column);
	
	2,唯一索引
			create unique index  index_num2 on table_name(column);
			唯一索引确保在定义索引的列中没有重复值

	3,组合索引			
			create index index_num3 on table_name(column1,column2);
			组合索引是在表的多个列上创建索引,
			索引中列的顺序是任意的,在表的多个列上创建的索引
						
	4,反向键索引		
			create index index_name on table_name(column) reverse;
			反向键索引反转索引列键值的每个字节,为了实现索引的均匀分配,
			
         通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上		
	
	5,位图索引
			create bitmap index index_name on table_name (column_name);
			位图索引适合创建在低基数数列上,节省空间
		
		6,基于函数的索引
		    	create index index_name on table_name (函数(column_name));
		    	基于一个或者多个列上的函数或表达式创建的索引
		    	
	删除索引
			drop index index_name;


	mysql中的索引
		
		1,普通索引
				CREATE INDEX index_name ON table(column(length));
				没有任何限制
		2,唯一索引
				CREATE UNIQUE INDEX indexName ON table(column(length))
				索引列的值必须唯一,但允许有空值
		3,主键索引
				是特殊的唯一索引,一般在建表的时候建立
		4,组合索引
				CREATE INDEX indexName ON table(column1,column2);
				只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。
				使用组合索引时遵循最左前缀集合.
		5,全文索引		
			CREATE FULLTEXT INDEX index_content ON article(content);
			主要用来查找文本中的关键字

本文地址:https://blog.csdn.net/joshuacty/article/details/107669361

相关标签: 数据库