今天老师给我们讲了数据库索引的原理,我大概整合了一下,可能会有问题,欢迎大家指出。
数据库索引其实是在数据库内创建了一张索引表,使用时占一小部分内存,但创建索引一般来说效率会提高很多。
数据库索引的原理,当数据库插入一条数据时,由于磁盘的物理存储空间很有可能是不连续的,如果不建立索引,则每次查找都是要遍历数据直至查找出正确的数据
而建立了索引表,索引表内的存储的是该条数据的物理地址,则通过查找索引表可以直接定位到该条数据,虽然要查找两次,但效率还是有明显的提高。
根据数据库的功能,可以在数据库设计器中创建三种索引,唯一索引,主键索引,聚簇索引。
唯一索引就是UNIQUE,表示当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。
主键索引大家应该都清楚,就不详细说了
聚簇索引。老师描述的意思是 当设置为聚簇索引时,它会将与该记录有关的所有数据都存放在一起,这样对多行查询的效率比较高,但代价也会稍微大些。一个表只能有一个聚簇索引。
一个表的索引个数最好不要超过三个,否则效率会很差
数据表中有normal ,unique和full text
normal就是普通索引
full text 全文搜索
我认为这篇文章总结的很好 http://blog.csdn.net/kennyrose/article/details/7532032 建议大家阅读