mysql中的索引

来源:互联网 发布:知乐全集 百度云 编辑:程序博客网 时间:2024/06/01 08:21

对数据库来说,索引的作用即是给“数据”加目录。

设有N条随机记录,不用索引,平均查找N/2次,那么用了索引之后呢:btree(二叉树)索引,用了log2N次,hash(哈希)索引,可以做到只用1次。

索引的好处与坏处:

好处:加快了查询速度(select)。

坏处:降低了增,删,改的速度(update/delete/insert),增大了表的文件的大小(索引文件甚至可能比数据文件还大)

索引的使用原则:

1,不过度索引,

2,索引条件列(where后面最频繁的条件比较适宜索引)

3,索引散列值,过于集中的值不要索引,例如给性别“男”,"女"加索引,意义不大

索引的类别:

1,普通索引(index)

2,主键索引(primary key)

3,唯一索引(unique)

4,全文索引(fulltext)

建表时直接声明索引:

create table tableName(

列1 列类型 列属性,

...

列N列类型 列属性,

primary key(列名),

index(列名),

unique(列名),

fulltext(列名)

)engine xxx charset xxx

通过修改表建立索引:

alter table tableName add index (列名);

alter table tableName add unique (列名);

alter table tableName add primary key (列名);

alter table tableName add fulltext (列名);

删除主键:

alter table tableName drop primary key;

删除其他索引:

alter table tableName drop index 索引名;

注意,索引名一般是列名,如果不是,可通过show index from tableName来查看索引



0 0