Mysql数据库存储原理

转载:https://blog.csdn.net/weixin_40612082/article/details/82179714

现在在做数据库服务器的开发工作,今天被问到存储过程,当时只是简单地回答了下,在网上搜索了下资料,才对存储过程有了新的认识。转载内容如下:

Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命令,需要使用的时候拿出来用就可以了。想要快速的了解Mysql储存过程吗,就一同看一下下文的“Mysql储存过程-原理、语法、函数详细说明”吧!

一、Mysql储存过程简介: 
储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。存储过程通常有以下优点:

1)存储过程能实现较快的执行速度。 
如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。而批处理的Transaction-SQL语句在每次运行时都要进行编译和优化,速度相对要慢一些。 
心得:编译优化,快!

2)存储过程允许标准组件是编程。 
存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 
心得:封装与抽象,简单调用

3)存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 
心得:功能强大,逻辑强大

4)存储过程可被作为一种安全机制来充分利用。 
系统管理员通过执行某一存储过程的权限进行限制,能够实现对相应的数据的访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。 
心得:限制与安全

5)存储过程能过减少网络流量。 
针对同一个数据库对象的操作(如查询、修改),如果这一操作所涉及的Transaction-SQL语句被组织程存储过程,那么当在客户计算机上调用该存储过程时,网络中传送的只是该调用语句,从而大大增加了网络流量并降低了网络负载

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库存储原理基本上可以分为以下两个方面: 1. 数据库的物理存储结构 MySQL数据库的物理存储结构主要包括以下几个部分: - 数据库文件:MySQL将数据存储在磁盘上的文件中,每个数据库都对应一个或多个文件,文件的格式通常为frm、MYD和MYI等。其中,frm文件存储表的结构信息,MYD文件存储表数据,MYI文件存储表的索引信息。 - 表结构:MySQL将表的结构信息存储在frm文件中,包括表的列数、每列的数据类型、索引信息等。 - 表数据:MySQL将表的数据存储在MYD文件中,按照行的方式进行存储,每行记录的数据按照表结构中的列顺序进行存储。 - 索引数据:MySQL将表的索引信息存储在MYI文件中,用于加速查询操作。 2. 数据库的逻辑存储结构 MySQL数据库的逻辑存储结构主要包括以下几个部分: - 数据库数据库是一组相关联的表的集合,每个数据库都有一个唯一的名称,用于区分不同的数据库。 - 表:表是一组具有相同结构的数据的集合,每个表都有一个唯一的名称,用于区分不同的表。 - 列:列是表的基本组成部分,每个列都有一个唯一的名称,用于区分不同的列。每个列都有一个数据类型,用于指定列中存储的数据的类型。 - 行:行是表中的记录,每行记录包括一组数据,每个数据对应一个列。每行记录都有一个唯一的标识符,称为行号。 - 索引:索引是一种数据结构,用于加速查询操作。MySQL支持多种索引类型,包括B树索引、哈希索引等。 综上所述,MySQL数据库存储原理是基于物理存储结构和逻辑存储结构相互配合的,物理存储结构决定了数据在磁盘中的存储方式,而逻辑存储结构则决定了数据在数据库中的组织方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值