首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL存储过程深入理解

MySQL存储过程的优点 通常存储过程有助于提高应用程序的性能。当创建,存储过程被编译之后,就存储在数据库中。 但是,MySQL实现的存储过程略有不同。 MySQL存储过程按需编译。...在编译存储过程之后,MySQL将其放入缓存中。 MySQL为每个连接维护自己的存储过程高速缓存。 如果应用程序在单个连接中多次使用存储过程,则使用编译版本,否则存储过程的工作方式类似于查询。...MySQL存储过程的缺点 如果使用大量存储过程,那么使用这些存储过程的每个连接的内存使用量将会大大增加。...不幸的是,MySQL不提供调试存储过程的功能。 开发和维护存储过程并不容易。开发和维护存储过程通常需要一个不是所有应用程序开发人员拥有的专业技能。这可能会导致应用程序开发和维护阶段的问题。...) BEGIN     SELECT count(id) from students; END;; DELIMITER ; call select_students_count(); 有参存储过程: MySQL

43040

深入理解MySQL innodb日志管理

MySQL5.7.4以前,一旦MySQL启动这个值便不能再做修改,如果要修改只能退出MySQL进程,然后修改对应的配置文件来设置新的buffer pool大小,重启才能生效。...注意:在MySQL5.7.5之后,可以在MySQL进程运行的情况下,动态调整innodb_buffer_pool_size,需要强调的是,如果buffer pool的大小超过了1GB,应该通过调整innodb_buffer_pool_instances...=N,把它分成若干个instance的做法,来提示MySQL处理请求的并发能力,因为buffer pool是通过链表的方式来管理页面的,同时为了保护页面,需要在存取的时候对链表加锁,在多线程的情况下,并发去读写...(在MySQL5.5以前日志组最大4G;MySQL5.6.3以后可以设置的更大到512G) 1.3、redo日志的写入,都是字节连续的,虽然看上去是多个日志文件,但理解的时候,完全可以把它想象成一个文件...由MySQL的后台master线程每隔1s将系统缓存的日志文件刷新到磁盘中;(主机正常,数据库宕机后:数据不会丢失) ---注意:如果数据库所在主机宕机后:参数0 会丢失最近1s的事务;参数1 不会有任何数据丢失

49920

深入理解MySQL触发器

似乎在《高性能MySQL》中,对触发器作了一定的描述,也提到使用中的一些优势和局限性,但感觉还是不能完全理解触发器的全部功能和实现。...于是自己在网上看了一些文章,结合官网(https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html)中的案例,写下这篇总结。...基本理解: 1. 使用场合: 触发器是基于事件的,主要的事件也就是MySQL的增删改操作,即insert,delete,update。 2....例如: mysql> delimiter // mysql> create trigger shop_limit before update on shoppingcar...> delimiter ; 条件语句程序块用begin和end包裹起来实现 delimiter:切换结束符,因为;是MySQL中默认的结束符,如果程序块中出现;符号,就会引起冲突。

60210

深入理解Mysql-基础架构

前言 MySQL是最受欢迎的开源SQL数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。...如果你用的是MySQL 5.7或更新版本,可以在每次执行一个比较大的操作后,通过执行 mysql_reset_connection来重新初始化连接资源。...日志系统 MySQL整体来看,其实就有两块:一块是Server层,它主要做的是MySQL功能层面的事情;还有一块是引擎层,负责存储相关的具体事宜。...要理解crash-safe这个概念,可以想想我们前面赊账记录的例子。...在MySQL中,事务支持是在引擎层实现的。MySQL是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如MySQL原生的MyISAM引擎就不支持事务。

60720

深入理解MySQL的MVCC原理

深入理解MySQL的MVCC原理 一、MVCC定义 1、并发事务可能产生的问题 2、当前读和快照读 二、MVCC实现、原理 1、隐藏字段 2、版本链 3、ReadView 三、手动验证MVCC的原理...1、隐藏字段 MySQL中,在每一行记录中除了自定义的字段,还有一些隐藏字段: row_id:当数据库表没定义主键时,InnoDB会以row_id为主键生成一个聚集索引。...(如果想要真正理解上面的算法,建议最好找个例子,亲自验证一下) 三、手动验证MVCC的原理 还是用上面的例子来说。...文章到这里就结束了,有心的同学可以跟着上面【事务隔离级别为RC】时的步骤,来推演验证一下在每个时间点、每个事务查询都能查到哪个版本的快照数据,也能加深一下理解(为了有些同学推演后想对比答案,我就把答案也写在下面了...转载请注明出处——胡玉洋 《深入理解MySQL的MVCC原理》

47320

深入理解 MySQL 索引底层原理

作者:junshili 一步一步推导出 Mysql 索引的底层数据结构。...Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。...但是 Mysql 并没有采取哈希作为其底层算法,这是为什么呢?...Innodb 引擎和 Myisam 引擎的实现 Mysql 底层数据引擎以插件形式设计,最常见的是 Innodb 引擎和 Myisam 引擎,用户可以根据个人需求选择不同的引擎作为 Mysql 数据表的底层引擎...本文首先探讨了哪种数据结构更适合作为 Mysql 底层索引的实现,然后再介绍了 Mysql 两种经典数据引擎 MyISAM 和 InnoDB 的底层实现。

1.9K43

深入理解 MySQL 的 MVCC 机制

如果没有 MVCC 机制,MySQL 将无法保证在高并发下数据一致和访问性能之间的平衡。 要聊 MVCC,就无法不提及事务。...为了方便你理解,我会先带你复习回顾一下MySQL事务,然后再看看 MVCC 在不同的事务隔离级别下,分别是如何工作的。 MySQL的事务: 在事务中的操作,要么全部执行,要么全部回滚。...注:MySQL 的默认隔离级别为repeatable-read级别 并且在MySQL中 repeatable-read级别还可以处理幻读,这是 MySQL独有的 next-keylock 实现的。...MVCC原理 版本链 MySQL的每行记录逻辑上其实是一个链表。...继续用之前的例子来理解一下 ReadView 和 trx_ids。 提交trx_id是2的记录后,接着有一个trx_id为3的事务,修改 name为源宝3,但是事务还没提交。

8.7K51

MySQL深入理解事务的来龙去脉

MySQL系列文章: 『MySQL』搞懂 InnoDB 锁机制 以及 高并发下如何解决超卖问题 「MySQL」高性能索引优化策略 『MySQL』揭开索引神秘面纱 『MySQLMySQL执行流程 一张思维导图读完系列文章...: image.png 距离上一篇MySQL的文章已经过去一个月了,终于有时间来写写关于MySQL的事务了。...上述案例是第三步出现了问题,如果有事务,则不会发生案例中的事情,可以理解为事务就是这三个步骤是一根绳子上的蚂蚱,要么都成功,要么都失败。...既然是逻辑日志,可以理解为它存储的是SQL, 在事务中使用的每一条 INSERT 都对应了一条 DELETE,每一条 UPDATE 也都对应一条相反的 UPDATE 语句。...第一阶段,Try,业务应用调取各个服务的Try接口,告诉他们给我预留一个商品,有人要购买,可以理解为冻结,每一步都不执行成功,只是标记更新状态。

50410

深入理解MySQL 5.7 GTID系列(一)

二、本系列文章包含了哪些内容 本系列文章一共分为十节: 深入理解MySQL 5.7 GTID系列(一):导读 深入理解MySQL 5.7 GTID系列(二):GTID相关内部数据结构 深入理解...MySQL 5.7 GTID系列(三) :GTID和Last_commt/sequnce_number的生成时机 深入理解MySQL 5.7 GTID系列(四) :MySQL.GTID_executed...表的作用和Previous GTID Event的改变 深入理解MySQL 5.7 GTID系列(五) :MySQL.GTID_executed表/GTID_executed变量/GTID_purged...变量的更改时机 深入理解MySQL 5.7 GTID系列(六) :MySQL启动初始化GTID模块 MySQL 5.7 GTID内部学习(七) 总结binlog_GTID_simple_recovery...参数带来的影响 MySQL 5.7 GTID内部学习(八) GTID带来的运维改变 MySQL 5.7 GTID内部学习(九) 实际案例(一) MySQL 5.7 GTID内部学习(十

69830

深入理解MySQL中的JOIN算法

为了高效地执行这些操作,MySQL等数据库管理系统采用了多种JOIN算法。每种算法都有其特定的适用场景和优缺点。...本文将深入探讨MySQL中常用的JOIN算法,并分析它们的工作原理、适用场景以及优化策略。...在理解嵌套循环连接时,可以将其想象为两层嵌套的循环,外部循环遍历一个表(通常称为外表),而内部循环则针对外部循环中的每一行遍历另一个表(称为内表)。...六、总结 MySQL提供了多种JOIN算法来满足不同场景下的查询需求。每种算法都有其特定的工作原理、适用场景和优缺点。...通过深入了解这些算法的工作原理和优化策略,我们可以编写出更加高效的SQL查询语句,从而提升数据库应用的性能。

10010
领券