MySQL 的存储过程和存储函数

MySQL 的存储过程和存储函数

@[toc]存储过程SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。存储过程的优点:(1)减少网络通信量。调用一个行数不多的存储过程与直接调用SQL 语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL 语句,那么其性能绝对比一条一条的调用SQ...

数据库 2019-09-06 PM 15℃ 0条
操作系统内存管理

操作系统内存管理

内存概述什么是内存:内存是用于存放数据的硬件,程序执行前需要先放到内存中才能被CPU处理。存储单元将内存分为一个一个的小区间,每个区间就是一个存储单元。内存地址给内存的存储单元编地址,有两种:按字节编址:每个存储单元的大小为1字节(8位)按字编址:字长为16位的计算机,每个存储单元的大小为1个字(16位)逻辑地址和物理地址逻辑地址:编译生成的指令中是逻辑地址,是相对地址。物理地址:是数据实际存放在内存当中的地址,是绝对地址。进程运行的基本原理进程执行的流程:装入方式绝对装入: 在编译时,如果直到程序将放到内存中的哪个位置,编译时将产生绝对地址的目标代码,装入程序按照装入模块中的地址,将程...

操作系统 2019-09-05 PM 13℃ 0条
再见 Redis

再见 Redis

此再见非彼再见,在之前的一篇文章中,学习了 Redis 的安装和基本的使用,在边实习边学习的过程中,加深了对其的理解,所以在这里总结一哈。回顾 RedisRedis 支持五种的数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)及 ZSet(sorted set,有序集合)。键 Key 的管理命令命令作用DEL keykey 存在时删除 keyDUMP key序列化给定 key 并返回序列化的值EXISTS key检查 key 是否存在EXPIRE key seconds为给定 key 设置过期时间PEXPIRE key milliseconds同上TTL...

中间件 2019-08-25 PM 15℃ 0条
实现生产者-消费者模式的五种方式

实现生产者-消费者模式的五种方式

在学习完 RabbitMQ 后,才明白为什么那么喜欢问生产者-消费者问题,因为在很多开发领域都能派上用场。在 Java基础 以及 操作系统 都有接触,但还是要在这里再总结一下。实现方式生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。保证同一时刻只有一个线程读或写:用synchronized对存储加锁,然后用object原生的wait() 和 notify()做同步用concurrent.locks.Lock,然后用condition的await() 和signal()做同步使用信号量semaphore保证存储...

总结和问题 2019-08-23 PM 11℃ 0条
RabbitMQ 入门与应用

RabbitMQ 入门与应用

RabbitMQ 概述消息队列:地址几种消息队列的区别:安装1.RabbitMQ 依赖 erlang,所以先安装 erlang 环境,配置环境变量:2.在 RabbitMQ 的 sbin 目录下,执行命令rabbitmq-plugins enable rabbitmq_management \开启管理后台的插件 rabbitmq-server start //cmd窗口运行,要保持开启则直接启动服务即可如果上一步报错:ERROR: node with name "rabbit" already running on "localhost"先 rabbitmqctl stop 再 r...

中间件 2019-08-21 PM 13℃ 0条
MYSQL 的 MVCC 机制

MYSQL 的 MVCC 机制

MVCC 概念Multi-Version Concurrency Control,即多版本并发控制当前读 当前读即加锁读,读取记录的最新版本号,会加锁(排他锁)保证其他并发事物不能修改当前记录,直至释放锁。插入/更新/删除操作默认使用当前读,显示的为select语句加lock in share mode或for update的查询也采用当前读模式快照读不加锁,读取记录的快照版本,而非最新版本,使用MVCC机制,最大的好处是读取不需要加锁,读写不冲突,用于读操作多于写操作的应用(串行级别下的快照读会退化成当前读)因此 MVCC 主要适用于Mysql的 RC , RR 隔离级别,而另外两个隔...

数据库 2019-08-20 PM 18℃ 0条
消息队列概念和使用场景

消息队列概念和使用场景

消息即是信息的载体。为了让消息发送者和消息接收者都能够明白消息所承载的信息(消息发送者需要知道如何构造消息;消息接收者需要知道如何解析消息),它们就需要按照一种统一的格式描述消息,这种统一的格式称之为消息协议。所以,有效的消息一定具有某一种格式;而没有格式的消息是没有意义的。而消息从发送者到接收者的方式也有两种。一种我们可以称为即时消息通讯,也就是说消息从一端发出后(消息发送者)立即就可以达到另一端(消息接收者),这种方式的具体实现就是我们已经介绍过的RPC(当然单纯的http通讯也满足这个定义);另一种方式称为延迟消息通讯,即消息从某一端发出后,首先进入一个容器进行临时存储,当达到某种...

中间件 2019-08-20 PM 18℃ 0条
Java 实现附近视频功能

Java 实现附近视频功能

在实习的项目中,获取视频列表时,需要实现一个按照附近视频获取列表的接口,通过爬文,一般有如下三种解决方法:上传视频时,保存地点的经、纬度到数据库,根据用户位置计算边界值,数据库进行范围索引查询。通过 geohash 算法将经纬度转换成一个字符串,保存到数据库,用户位置也转换成字符串,然后进行模糊查询。使用能保存地理位置信息的数据库,如:mongodb、sqlserver、mysql5.7+。保存经纬度由于项目使用的 mysql5.5 数据库,所以采用的第一种方法,主要是需要确定查询的范围,即经度的范围和纬度的范围。而一般我们所说的附近是一个圆形区域,我们先查询其最小的矩形区域内的视频,然...

总结和问题 2019-08-08 PM 14℃ 0条
MVC和前后端分离

MVC和前后端分离

参考:孤独烟早期JSP+SERVLET:也就是我们传统的 MVC 开发模式。缺点:视图依赖于模型,如果没有模型,视图也无法呈现出最终的效果;在服务端完成视图的渲染,浏览器解析的是带有模型数据的视图(JSP)前后端分离:使用较多的开发方式,基于 RESTful 设计风格的后端提供相应的接口,浏览器发送AJAX请求,然后服务端接受该请求并将 JSON 数据返回给浏览器,页面解析 JSON 数据,通过 dom 操作渲染页面。node.js因为没有参与过,所以这里只进行简单的了解。node.js 可以作为一个中间层。所谓中间层就是在前端与后端之间加多一层。而这个主要是将原来由后端来做的页面动态化...

总结和问题 2019-08-05 PM 14℃ 0条