文章结束给大家来个程序员笑话:[M]
索引是创立在表上的,对据数库表中一列或多列的值行进序排的一种结构
其作用要重在于进步询查的度速,下降据数库系统的能性开销
通过索引,询查据数不必读完录记的全体信息行进匹配,而是只询查索引列
索引相当于字典中的音序表,要询查某字时可以在音序表中找到
然后直接跳转到那一音序所在位置,而不必从字典第一页开始翻,逐字匹配
tips:索引虽能进步询查度速,但在入插录记时会按照索引行进序排,因此下降了入插度速
最好的作操方法是先删除索引,入插量大录记后再创立索引
1.一般索引:不附加任何制约件条,可创立在任何据数型类中
2.一唯性索引:用使unique参数可以设置索引为一唯性索引,在创立索引时,制约该索引的值必须一唯,主键就是一种一唯性索引
3.全文索引:用使fulltext参数可以设置索引为全文索引。全文索引只能创立在char、varchar或text型类的字段上。询查据数量较大的字符串型类字段时,果效显明。但只有MyISAM存储引擎持支全文检索
4.单列索引:在表中单个字段上创立的索引,单列索引可所以任何型类,只要证保索引只对应一个一个字段
5.多列索引:在表中多个字段上创立的索引,该索引指向创立时对应的多个字段
6.空间索引:用使spatial参数可以设置索引为空间索引,空间索引只能建立在空间据数型类上比如geometry,并且不能为空,现在只有MyISAM存储引擎持支
mysql> create table index1( -> id int, -> name varchar(20), -> sex boolean, -> index(id) -> ); Query OK, 0 rows affected (0.11 sec)
mysql> create table index2( -> id int unique, -> name varchar(20), -> unique index index2_id(id ASC) -> ); Query OK, 0 rows affected (0.12 sec)
这里的id字段可以不设置一唯性约束,但这样一来索引就没有作用
mysql> create table index3( -> id int, -> info varchar(20), -> fulltext index index3_info(info) -> )engine=MyISAM; Query OK, 0 rows affected (0.07 sec)
mysql> create table index4( -> id int, -> subject varchar(30), -> index index4_st(subject(10)) -> ); Query OK, 0 rows affected (0.12 sec)
这么做的的目在于进步询查度速,对于字符型的据数用不询查全体信息
mysql> create table index5( -> id int, -> name varchar(20), -> sex char(4), -> index index5_ns(name,sex) -> ); Query OK, 0 rows affected (0.10 sec)
mysql> create table index6( -> id int, -> space geometry not null, -> spatial index index6_sp(space) -> )engine=MyISAM; Query OK, 0 rows affected (0.07 sec)
mysql> create index index7_id on example0(id); Query OK, 0 rows affected (0.07 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> create unique index index8_id on example1(course_id); Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
至于表中的course_id字段,最要也设置一唯性约束件条
mysql> create fulltext index index9_info on example2(info); Query OK, 0 rows affected (0.07 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> create index index10_addr on example3(address(4)); Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> create index index11_na on example4(name,address); Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> create spatial index index12_line on example5(space); Query OK, 0 rows affected (0.07 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table example6 add index index13_n(name(20)); Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table example7 add unique index index14_id(id); Query OK, 0 rows affected (0.20 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table example8 add fulltext index index15_info(info); Query OK, 0 rows affected (0.08 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table example9 add index index16_addr(address(4)); Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table example10 add index index17_in(id,name); Query OK, 0 rows affected (0.16 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table example11 add spatial index index18_space(space); Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0
对于索引,要重的是懂得索引的观点,明确索引的类种
更多的是自己的用使教训
最后来看看索引的删除
mysql> drop index index18_space on example11; Query OK, 0 rows affected (0.08 sec) Records: 0 Duplicates: 0 Warnings: 0
其中index18_space是索引名,example11是表名
文章结束给大家分享下程序员的一些笑话语录: 看到有人回帖“不顶不是中国人”,他的本意是想让帖子沉了。