MysQL自学笔记8--索引、存储过程
2017-01-27 00:00
295 查看
摘要: 简单学习了一下MySQL中索引和存储引擎的概念
举一个例子:有一张表,上面有20列,13列上存在索引,要导入1000W行数据,该如何快速导入?
将空表的索引全部删除
导入数据
导入数据结束后,集中建立索引
创建索引的原则:
不要过度索引
在where条件最为频繁的列上面添加索引
尽量索引散列值,过于集中的值添加索引意义不大
索引类型:
普通索引:index,作用是加快查询速度
唯一索引:unique,要求行上的值是不能重复的
主键索引:primary key,主键是不能重复的
主键一定是唯一的,但是唯一索引不一定是主键索引
一张表上面可以有一个或多个唯一索引,但是只能有一个主键
全文索引:fulltext
索引的一些基本操作:
查看一张表上面的全部索引:
建立索引:可以分为两种
建立普通、唯一、全文索引:
建立主键索引
删除索引:
删除非主键索引:
删除主键索引:
全文索引中有一个固定的句式用法:
match (全文索引名) against ('key_word');
全文索引的停止词:
全文索引不针对非常频繁的词作索引,比如:
全文索引对中文的使用情况:
在MySQL默认情况下,全文索引对中文的意义不是很大,因为中文无法像英文一样使用空格以及标点符号拆分单词,进而对单词进行索引!
存储过程没有函数值,但是函数有返回值
删除存储过程:
调用存储过程:
创建存储过程:
create procedure pro_Name([paremeters...])
begin
SQL语句
end;
mySQL自学笔记
使用MySQL 5.5以及MySQL自带命令客户端索引
索引是对数据库表中一列或者多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息,其作用是可以加快查询速度,缺点是会降低增、删、改的速度举一个例子:有一张表,上面有20列,13列上存在索引,要导入1000W行数据,该如何快速导入?
将空表的索引全部删除
导入数据
导入数据结束后,集中建立索引
创建索引的原则:
不要过度索引
在where条件最为频繁的列上面添加索引
尽量索引散列值,过于集中的值添加索引意义不大
索引类型:
普通索引:index,作用是加快查询速度
唯一索引:unique,要求行上的值是不能重复的
主键索引:primary key,主键是不能重复的
主键一定是唯一的,但是唯一索引不一定是主键索引
一张表上面可以有一个或多个唯一索引,但是只能有一个主键
全文索引:fulltext
索引的一些基本操作:
查看一张表上面的全部索引:
show index from tableName; # 如果想要竖着显示,可以在语句最后加一个`\G` show index from tableName \G;
建立索引:可以分为两种
建立普通、唯一、全文索引:
alter table tableName add index/unique/fulltext [indexName] (columnName);
建立主键索引
alter table tableName add primary key (columnName); // 这里不加索引名词是因为主键只有一个
删除索引:
删除非主键索引:
alter table tableName drop index indexName;
删除主键索引:
alter table tableName drop primary key;
全文索引中有一个固定的句式用法:
match (全文索引名) against ('key_word');
* ``` MySQL select * from table1 where match (index1) against ('key_word');
全文索引的停止词:
全文索引不针对非常频繁的词作索引,比如:
this、
is、
you、
my等词汇
全文索引对中文的使用情况:
在MySQL默认情况下,全文索引对中文的意义不是很大,因为中文无法像英文一样使用空格以及标点符号拆分单词,进而对单词进行索引!
存储过程
存储过程的概念类似于函数,就是将一段代码封装起来,当要执行该段代码时,可以通过调用(call)该存储过程来实现。在存储过程中,可以使用if/else、
case、
while等控制结构
存储过程和函数区别
名称不一样存储过程没有函数值,但是函数有返回值
存储过程一些基本操作
查看存储过程:show procedure status;、
show 3ff0 procedure status \G; //横着显示
删除存储过程:
drop procedure pro_Name;
调用存储过程:
call pro_Name([parameters...]);
创建存储过程:
create procedure pro_Name([paremeters...])
begin
SQL语句
end;
* 可以使用`delimeter`来声明新的结束符 * 示例: ``` MySQL create procedure pro1() begin select * from g; end$
Create procedure pro2(n int) Begin Select * from g where num > n; End$ //调用时可用代码`call pro2(3);`
Create procedure pro3(n int,j char(1)) Begin If j = ’zqh’then Select * from g where num > n; Else Select * from g where num < n; End if; End$ //调用时可以使用代码`call pro3(13, 'zqh');`
Create procedure p3(n int,j char(1)) Begin If j = ’h’then Select * from g where num > n; Else Select * from g where num < n; End if; End$ //调用时可以使用代码`call pro(100);`
相关文章推荐
- MysQL自学笔记8--索引、存储过程
- [Mysql自学笔记]索引的原理
- MySQL学习笔记 3 索引、存储过程
- Mysql自学笔记五(存储过程)
- mysql 笔记 六 存储引擎 事务 索引 存储过程
- MySQL判断索引是否存在的存储过程
- MySQL索引基本概念笔记
- MySQL索引 使用笔记 -转
- 【学习笔记】mysql索引原理之InnoDB
- MySQL笔记(覆盖索引)
- mysql笔记四:索引查询及处理
- MySQL学习笔记6:索引
- MySQL笔记(聚集索引)
- MySQL索引 使用笔记
- MySQL笔记之索引的使用
- MySQL索引使用笔记
- mysql 存储过程、函数、索引、视图的一些系统命令
- MySQL索引分析和优化 (笔记)
- MySQL笔记(哈希索引)
- 关于Mysql 字段遇到关键字注解处理 存储过程 以及 函数 定时器 的笔记