发表于: 2017-11-12 21:51:00

1 925


今天完成的事情:

      小课堂准备

明天计划的事情:

       做小课堂ppt

遇到的问题:

       暂无

收获: 

 普通索引(由关键字key或index定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(wherecolumn=)或排序条件(orderbycolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。

普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。

如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字unique把它定义为一个唯一索引。这么做的好处:一是简化了mysql对这个索引的管理工作,这个索引也因此而变得更有效率;二是mysql会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,mysql将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。

       如果字段里存放的是由几个、甚至是多个单词构成的较大段文字,普通索引就没什么作用了。这种检索往往以的形式出现,这对MySQL来说很复杂,如果需要处理的数据量很大,响应时间就会很长。

一个表的主键只能有一个,而唯一索引可以建多个。

主键可以作为其它表的外键。

主键不可为null,唯一索引可以多个数据为null。

什么情况下需要唯一索引

 1:肯定在where条后经常使用

 2:该字段的内容不是唯一的几个值。

但是也不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响到更新速度,这被称为过度索引

 3:字段内容不是频繁变化

4:表记录太少的肯定不需要



禅道

http://task.ptteng.com/zentao/project-task-385-unclosed.html


返回列表 返回列表
评论

    分享到