Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4710587
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: Mysql/postgreSQL

2009-08-29 10:40:10

 
   昨夜武汉这边天气恶劣,了无睡意,躺在床上就开始对MySQL进行些空想了...
   1.既然创建index可以提高search速度,那为什么create table的时候,不就都默认就创建index呢??这个问题我自己给自己的答案是空间问题,还有就是数据量小的时候无所高速度!!
   2.index之后,如果字段变了呢??
    这个变又分两种,一种是update,delete值,这个只要更新index就可以了,对于问题1又有了点解释,创建index后,每次update,delete都还要去update,delete index,时间问题不一定合算.
    再就是字段属性改变了,table的column删除了,改名了.
    对于删除,index也是简单的进行删除,之后我会上图给大家看看...改名呢也是简单的进行index的改名...
就是说你create index之后alter table的时候,index也是会随之而改变的...
 
    图片真JB不好弄,不弄了...大家按下面的步骤敲下就知道了
  
   create table stu(name varchar(10),class varchar(10), age int);
   create index stu_idx on stu(name,class,age);
   show index from stu;
   alter table stu change name name1 varchar(20);
   show index from stu;
   alter table stu drop class;
   show index from stu;
       
  show index可以看到索引是用的BTREE,今天看看这个东东了....
阅读(3264) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

ubuntuer2009-09-03 14:48:15

了解,呵呵

chinaunix网友2009-09-03 10:50:22

你真的是空想啊,呵呵。对于add/delete/update而言索引带来额外的负担,而对于查询来说,只有每次只查询5%以前的数据时效率比较明显,并且被索引的字段要出现在where条件中。所以没有一般数据库都不会在创建表时自动索引(好像有一个是对主键自动创建索引?太多年不做数据库类开发忘了),因为它无法知道这个表是修改多还是查询多,也没办法知道用户使用时查询的条件。

yueliangdao06082009-09-02 14:38:31

呵呵。