学习内容:存储程序与函数...这一章学的我是云里雾里的... 1.存储过程...   Mysql存储过程是从mysql 5.0开始增加的一个新功能.存储过程的优点其实有很多,不过我觉得存储过程最重要的优点就是实现了SQL代码的封装,那么我们为什么需要封装SQL语句呢?原因就是当我们在面对一个庞大的数据库的时候,当我们使用外部程序去访问数据库的时候...我们总不能在外部程序中内嵌很多的SQL语句吧...那样执行的效率不高,并且也不容易维护...因此存储过程将我们的操作进行封装,当我们需要对其进行操…
一.概述      存储过程是数据库定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程可以避免开发人员重复的编写相同的SQL语句,而且存储过程是在MySql服务器中存储和执行的,可以减少客户端与服务器端的数据传输.   1.优点 (1)提供执行性能     通常在客户端执行SQL命令时,在数据库有解析到编译这个前期准备过程.但是,存储过程是先完成了解析.编译的处理后保存在数据库中的,执行时能减轻数据库负担,提高执行性能.   (2)可减轻网络负担  …
use test; drop table if exists t8; CREATE TABLE t8(s1 INT,PRIMARY KEY(s1)); drop procedure if exists handlerdemo; DELIMITER $$ CREATE PROCEDURE handlerdemo() BEGIN declare xx int default 4; DECLARE oh_no condition for sqlstate '23000'; #DECLARE CONTI…
一.数据库性能评测关键指标 1.IOPS:每秒处理的IO请求次数,这跟磁盘硬件相关,DBA不能左右,但推荐使用SSD. 2.QPS:每秒查询次数,可以使用show status或mysqladmin extended-status命令来查看QPS值,如下所示. mysql> show global status like 'Questions';--QPS=Questions/Uptime(show status like 'Uptime')这是一个全局的平均值 +---------------…
存储过程是MySql 5支持的特性,它是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命令,需要使用的时候拿出来用就可以了.有点像我们在Java类中写的方法,我们可以根据需要传入参数,调用该方法. 存储过程通常有以下优点: 1)存储过程能实现较快的执行速度.如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很…
1.数据库锁就是为了保证数据库数据的一致性在一个共享资源被并发访问时使得数据访问顺序化的机制.MySQL数据库的锁机制比较独特,支持不同的存储引擎使用不同的锁机制. 2.MySQL使用了三种类型的锁机制,分别为:表级锁,行级锁,页级锁,它们的特性如下所示. 表级锁:实现逻辑较为简单,加锁速度快,开销小,不会发生死锁:但粒度最大,发生锁冲突的几率最大,并发度最小,适用于以查询为主,极少量更新的系统. 行级锁:加锁慢,开销大,会发生死锁:但粒度最小,锁冲突率小,并发度最高,使用于并发查询大,有大量按…
SQL优化 1.查看各种SQL执行的频率 mysql> show status like 'Com_select';--Com_insert,Com_delete,connections(试图连接mysql服务的次数),uptime(mysql工作时间),slow_queries(慢查询次数)等等 2.定位执行效率较低的SQL语句 通过慢查询日志,定位查询效率低下的SQL语句,然后分析语句进行优化 3.通过explain或desc分析SQL语句的执行计划,如要查看所访问的分区使用explain…
数据备份 1.物理备份与逻辑备份 物理备份 物理备份就是将数据库的数据文件,配置文件,日志文件等复制一份到其他路径上,这种备份速度一般较快,因为只有I/O操作.进行物理备份时,一般都需要关闭mysql服务器,或者对需要备份的对象进行锁定,要不很容易造成备份的不一致性,恢复时可能会丢失数据.物理备份的方式有很多,如操作系统命令copy(cp),scp,mysqlbackup,以及MyISAM表的mysqlhotcopy. 逻辑备份 逻辑备份是对数据库的逻辑结构(create database,cr…
1.错误日志文件 MySQL的错误日志文件记录错误信息,还会记录mysqld进程的关闭和启动的信息,但也不是什么错误信息都会记录,只记录mysqld进程运行过程中发生的关键性错误. 错误日志的启动,可以在启动mysqld进程时,通过log-error选项来指定错误日志文件名和存放位置,或者my.ini配置文件中配置log-error参数,如果没有指定文件名的话,会自动生成一个[hostname].err文件保存在{datadir}文件夹下. 在删除错误日志后,会把错误日志重建到[hostname…
一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是null. 二:数值函数 注意的几个细节: 1.truncate(x,y) 和 round(x,y) 都能截断,只是round会四舍五入,而truncate不会. 三:日期和时间函数 四:流程函数 五:其他函数…