MySQL存储过程之事务管理
ACID:Atomic、Consistent、Isolated、Durable
存储程序提供了一个绝佳的机制来定义、封装和管理事务。
1,MySQL的事务支持
MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关:
Java代码1
MyISAM:不支持事务,用于只读程序提高性能 2
InnoDB:支持ACID事务、行级锁、并发 3
Berkeley DB:支持事务
隔离级别:
隔离级别决定了一个session中的事务可能对另...
首先登陆进入Mysql命令行 执行sql show variables like ‘slow_query%‘; 结果为OFF 说明还未开启慢查询执行sql show variables like ‘long_query_time‘; 可以看到具体的慢查询 “”时限“ 我们先开启慢查询 执行sql set global slow_query_log=‘ON‘;这是再去查询一下(show variables like ‘slow_query%‘;)发现已经开启了。也可以设置时限为1秒set global long_query_time=1; 上面的方法只是临时生效,mysql重...
mysql常用导出数据命令:1.mysql导出整个数据库 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql mysqldump -hlocalhost -uroot hqgr> hqgr.sql (如果root用户没用密码可以不写-p,当然导出的sql文件你可以制定一个路径,未指定则存放在mysql的bin目录下)2.mysql导出数据库一个表 mysqldump -hhostname -uusername -ppassword database tablename> 导出的文件名 mysqldump -hlocalhos...
新增索引:LTER TABLE `tablename` ADD INDEX `sdhid` (`createTime`) USING BTREE ;[SQL]ALTER TABLE `tablename` ADD INDEX `sdhid` (`createTime`) USING BTREE ;受影响的行: 0时间: 737.600s[SQL]ALTER TABLE tablename add INDEX jkjk(createTime) USING BTREE;受影响的行: 0时间: 1586.745s 26分钟[SQL]delete from tablename where createTime< 95 limit 1;受影响的行: 0时间: 109.540screateTime有索引时删除测试:[SQL]A...
Life is not what you have gained but what you have done! SQL语句首先需要编译,然后才运行,而存储过程是为了完成某一功能的SQL集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数来调用它。存储语句是可编程的函数,在数据库中创建并保存,有SQL语句和控制语句组成,数据库中的存储过程可以看做是对面向对象的模拟,它允许控制数据的访问方式。优点:可以完成复杂的判断和计算标准组件式编程,存储过程被创建...
delimiter //drop procedure if exists p_PreLogin//create procedure p_PreLogin( IN in_username varchar(32), IN in_password varchar(32), IN in_asshkey varchar(33),IN in_usshkey varchar(33),IN in_gameid tinyint, IN in_logintype tinyint)
PROC_LABEL: begindeclare result int default 0;declare res_aid int default 0;declare res_uid int default 0;declare res_srvid int default 0;declare res_status tinyint de...
-- 创建存储过程
-- DELIMITER //
CREATE PROCEDURE pro_first()
BEGINselect NOW();
END -- //
-- DELIMITER ;
-- 删除存储过程
DROP PROCEDURE pro_first;
-- 查看指定存储过程
SHOW CREATE PROCEDURE pro_first;
-- 查看所有存储过程
SHOW PROCEDURE STATUS;
-- 调用存储过程
CALL pro_first(); -- 练习
create procedure pro_practise()
BEGINselect 1+3 from dual;
ENDcall pro_practise();-- 变量
CREATE procedure pro_var...
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 摘要:存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来运行已经定义好的SQL语句。存储过程和函数能够避免开发者反复的编写同样的SQL语句。而且,存储过程和函数是在MySQLserver中存储和运行的。能够降低client和server端的传输数据。一、存储过程1.1、基本的语法CREATE PROCEDURE sp_name ([proc_parameter[,...]]...
实际应用小例子之前所使用的存储过程基本上都是封装mysql 简单的select 语句。虽然它们全都是有效的存储过程例子,但只有在存储过程中包含业务规则和智能处理时,他们的威力才会真正显示出来如完成以下事情,获得与之前一样的订单合计,但需要对合计增加营业税,不过只针对某些顾客,主要就是:1、获得合计2、把营业税有条件的添加到合计 3、返回合计(带或不带税)存储过程的实现如下: delimiter $$-- 存储过程的名字时 : proc...
mysql存储过程详解1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行...
今天在mysql数据库中执行一个存储过程,由于没有安装mysql数据连接工具,只好在黑框框里执行然后就遇到下面的问题:一直说是我的存储过程的语法有问题,但是看了好久都没有看出问题,后来查了一上午资料才发生问题所在:在mysql中“;”会默认为是一句sql语句的结束,所以在使用source命令执行数据库脚本时,遇到“;”符号时,数据库会认为你一句sql语句写完了,他会自动执行这句,这时候就出问题了,要解决这个问题可以使用DELIM...
//顺序堆栈的操作实现
void StackInitiate(SeqStack *S)
{S->top=0;
}
int StackNotEmpty(SeqStack S)
{if(S.top<=0)return 0;else return 1;
}
int StackPush(SeqStack *S,DataType x)
{if(S->top>=MaxStackSize){printf("堆栈已满无法插入!\N");return 0;}else{S->stack[S->top] = x;S->top++;return 1;}
}
int StackPop(SeqStack *S,DataType *d)
{if(S->top<=0){printf("堆栈已空无数据元素出栈!\n");return 0;}else{S->top-...
工作需要,用到MYSQL的分页功能,在网上找到一个不错的分页存储过程,代码整理了一下! 存储过程代码CREATEPROCEDURE `sp_hj_splitpage`(in _pagecurrent int,/*当前页*/in _pagesize int,/*每页的记录数*/in _ifelse varchar(1000),/*显示字段*/in _wherevarchar(1000),/*条件*/in _ordervarchar(1000)/*排序*/
)
COMMENT ‘分页存储过程‘BEGINif _pagesize<=1thenset _pagesize=20;endif;if _pagecurrent <1thenset _pagecur...
断点续传、QQ等项目的数据保存在数据库中实现。本文出自 “作业” 博客,请务必保留此出处http://10718270.blog.51cto.com/10708270/1793274原文:http://10718270.blog.51cto.com/10708270/1793274
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。使用情况:比如有1万个请求都是做同一个业务;这个业务需要修改20个表的内容,那么不用存储过程,就是用一条一条的sql语句实现咯; 就算不直接用sql,也是间接使用吧;不管你有没有所谓的中间层业务处理服务器,它也要和数据库打交道吧;试...