MySql索引,存储过程(五)

Mysql索引

设有N条随机记录,不用索引,平均查找N/2次,那么用了索引之后?

Btree索引,Log2N

Hash索引,1

 

索引与优化之索引的好处与坏处

好处:加快了查询速度

坏处:降低了增删改的速度

增大了表的文件大小(索引文件甚至可能比数据文件还大)

大数据量导入时,应先去掉索引,再导入,最后统一加索引。

索引的使用原则:

不过度索引、索引条件列(where后面最频繁的条件比较适合索引)、索引散列值,过于集中的值不要索引。例如:给性别男女加索引意义不大。

索引类型:普通索引,主键索引,唯一索引,全文索引。

 

.frm是结构文件

.myd是数据文件

.myi是索引文件

索引文件比数据文件大是一种很常见的事情

1.    普通索引 index 仅仅是加快查询速度

2.    唯一索引 unique index行上的值不能重复

3.    主键索引 primary key不能重复,主键索引必唯一,但是唯一索引不一定是主键,一张表上只能有一个主键,但是可以用一个或者多个索引。

4.    全文索引:fulltext index

查看一张表上的所有索引:

Showindex from 表名;


建立索引:(索引名和索引在哪个列上发挥作用)

Altertable 表名add index/unique/fulltext[索引名](列名);







主键索引有一点区别:

Alter  table 表名primary key (列名);


 删除索引:

Alter table 表名drop index 索引名;



索引是根据数据建立的目录。

全文索引在mysql的默认情况下,对中文的意义不大。


这么查是一行一行查,效率低。针对每一个单词建立一个索引,


停止词的问题:(一会讲)


停止词是种非常常见的词,是不会加索引的。

关于全文索引的用法:

Match(全文索引名)against(‘keyword’);

关于全文索引的停止词:

全文索引不针对非常频繁的词做索引,如,this,is等

全文索引对中文的意义不大因为英文有空格,标点符号来拆成单词,进而对单词进行索引,而对于中文,没有空格来隔开单词mysql无法识别每个中文词。

存储过程:

类似于函数,就是把一段代码封装起来,当要执行这一段代码时

可以调用该存储过程来实现。

在封装语句体里面,可以用if/else,case,while

等控制结构,可以进行sql编程。

查看现有的存储过程

Show procedure status

删除存储过程

Drop procedure 存储过程的名字

调用存储过程

Call 存储过程的名字();(括号内可以放参数)

第一个存储过程,体会封装sql的用法


第二个存储过程,体会控制结构。





 

在mysql中,存储过程和函数的区别:

一是名称不同

二是存储过程没有返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值