文档章节

MySql--索引和自定义函数

丿咖啡灬微凉
 丿咖啡灬微凉
发布于 2017/04/17 23:56
字数 526
阅读 10
收藏 0

  在MySql中,如果数据表中数据量非常庞大的时候,查询某条记录会非常的浪费时间,鉴于此,MySql提供了一种提高查询效率的工具——索引,有了索引查询速率大大的提高了。

  之前有提到MySql提供的函数,其实MySql还可以自定义函数,这样的话就不会局限于之前提供的这几个函数了。

/*************************索引************************************************/	
一、管理索引
	1、普通索引创建
		mysql> create INDEX ind_name ON newInfo(name);
		Query OK, 4 rows affected (0.01 sec)
		Records: 4  Duplicates: 0  Warnings: 0

		mysql> alter table newInfo add index ind_name(name);
		Query OK, 4 rows affected (0.01 sec)
		Records: 4  Duplicates: 0  Warnings: 0
		
	2、唯一索引创建
		mysql> create unique index ind_subjectid on newInfo(subjectid);
		Query OK, 4 rows affected (0.01 sec)
		Records: 4  Duplicates: 0  Warnings: 0

		mysql> alter table newInfo add index ind_subjectid(subjectid);
		Query OK, 4 rows affected (0.01 sec)
		Records: 4  Duplicates: 0  Warnings: 0

	3、主键索引创建
		mysql> create table testInfo(id int, name varchar(20), primary key(id));
		Query OK, 0 rows affected (0.00 sec)
	
		mysql> create table testInfo(id int, name varchar(20));
		Query OK, 0 rows affected (0.00 sec)

		mysql> alter table testInfo add PRIMARY KEY(id);
		Query OK, 0 rows affected (0.00 sec)
		Records: 0  Duplicates: 0  Warnings: 0

二、查看索引
	mysql> show index from newInfo;
	+---------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
	| Table   | Non_unique | Key_name      | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
	+---------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
	| newInfo |          0 | PRIMARY       |            1 | id          | A         |           4 |     NULL | NULL   |      | BTREE      |         |
	| newInfo |          1 | ind_name      |            1 | name        | A         |        NULL |     NULL | NULL   | YES  | BTREE      |         |
	| newInfo |          1 | ind_subjectid |            1 | subjectid   | A         |        NULL |     NULL | NULL   | YES  | BTREE      |         |
	+---------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
	3 rows in set (0.00 sec)

三、删除索引
	mysql> drop index ind_name on newInfo; 
	Query OK, 4 rows affected (0.00 sec)
	Records: 4  Duplicates: 0  Warnings: 0

	mysql> alter table newInfo drop index ind_subjectid;
	Query OK, 4 rows affected (0.00 sec)
	Records: 4  Duplicates: 0  Warnings: 0

/*****************************************************************************/	


	
/*************************自定义函数******************************************/	
1、创建自定义函数
	mysql> delimiter $$
	mysql> create function myfunc(a INT, b INT)
		-> RETURNS INT
		-> BEGIN 
		-> return a+b;
		-> end$$
	Query OK, 0 rows affected (0.00 sec)

	mysql> select myfunc(2,3)$$
	+-------------+
	| myfunc(2,3) |
	+-------------+
	|           5 |
	+-------------+
	1 row in set (0.00 sec)

2、删除函数
	mysql> drop function myfunc;
	Query OK, 0 rows affected (0.00 sec)

3、注释
	创建函数的语句中含有分号,但我们并没有写完这条语句,mysql默认分号为止为一行语句,可以使用delimiter解决
	mysql> delimiter $$						//到 "$$" 为止是一条语句
	恢复分号
	mysql> delimiter ;						//到;为止是一条语句
	
/*****************************************************************************/


本文转载自:http://blog.csdn.net/hjf161105/article/details/69397378

上一篇: MySql--触发器
下一篇: MySql--视图
丿咖啡灬微凉
粉丝 1
博文 70
码字总数 0
作品 0
私信 提问
这些特性,Postgre SQL秒杀其他数据库

你可能会问自己 “为什么选择PostgreSQL ?” 开源数据库我们有好几种选择(本文参考 MySQL, MariaDB 和 Firebird ), 那么 PostgreSQL 具有哪些其它开源数据库不具备的特性呢? PostgreSQL 宣...

三墩IT人
2016/02/04
0
0
mysql select 执行过程查询关键字 explain

语法:explain select .... 变体: 1. explainextended select .... 将执行计划“反编译”成select语句; 运行showwarnings 可以得到被mysql优化器优化后的语句 2. explainpartitions selec...

常翔
2013/11/22
0
0
Mysql优化学习

(1) mysql 应该至少满足3NF (2)sql语句一共有四类 ddl(数据定义语言):create,alter,drop dml(数据操作语言):insert,delete,update dtl(数据事务语言):commit,rollback,savepoint dcl(数据...

eatnothing
2016/01/24
176
0
Mysql 和 Postgresql 对比

Mysql 使用太广泛了,以至于我不得不将一些应用从mysql 迁移到postgresql, 很多开源软件都是以Mysql 作为数据库标准,并且以Mysql 作为抽象基础的,但是具体使用过程中,发现Mysql 有很多问题...

宏哥
2010/12/14
33.9K
63
Coreseek Windows下安装调试

 由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx【中文是狮身人面像】这个全文检索引擎,听说挺好用的,不过没有中文分词。后面又去找了一下,找到了Coreseek,一款中文全文检...

技术小胖子
2017/11/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

从濒临解散到浴火重生,OceanBase 这十年经历了什么?

阿里妹导读:谈及国产自研数据库,就不得不提 OceanBase。与很多人想象不同的是,OceanBase 并非衔着金钥匙出生的宠儿。相反,它曾无人看好、困难重重,整个团队甚至数度濒临解散。 从危在旦...

阿里云云栖社区
32分钟前
4
0
比特币第三方API大全

在开发比特币应用时,除了使用自己搭建的节点,也可以利用第三方提供的比特币api,来获取市场行情、进行交易支付、查询账户余额等。这些第三方api不一定遵循标准的比特币rpc接口规范,但往往...

汇智网教程
43分钟前
4
0
Dozer:Dozer异常java.lang.ClassCastException

这个问题是个很难发现的问题,因为代码本身没有错误,但就是无法找到报错原因 现记录下这个报错 java.lang.ClassCastException:com.XXX.ObjectA cannot be cast to com.XXX.ObjectA 代码中并...

琴兽
今天
2
0
Feign Retryer的默认重试策略测试

1、Feign配置 @Configurationpublic class FeignConfig { @Value("${coupon_service.url:http://localhost:8081}") private String couponServiceUrl; @Bean publ......

moon888
今天
2
0
关于不同域名下的session共享问题

如果登录,首页,分类,列表,产品都在不同的二级域名下,主域名不变,一定要保证里面的版本问题,不能为了更新而更新,这样哪个下面的session都访问不了。

dragon_tech
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部