mysql堆溢出_为什么这个MySQL触发器会导致堆栈溢出?
我今天遇到了同样的问题,每次触发都会导致堆栈溢出.原来我的Zend社区服务器安装附带了一个默认的my.cnf文件,其中thread_stack大小设置为128K,这导致每个线程中可用于堆栈的131072字节:
mysql> show variables where `Variable_name` = 'thread_stack';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| thread_stack | 131072 |
+---------------+--------+
所以我在/usr/local/zend/mysql/data/my.cnf中注释了这一行,重新启动了mysql守护进程,瞧! default 192K是
mysql> show variables where `Variable_name` = 'thread_stack';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| thread_stack | 196608 |
+---------------+--------+
现在你的桌子& tchester的触发器工作完美:)(尽管请注意分隔符)
mysql> CREATE TABLE `job_title` (
-> `job_id` int(11) NOT NULL AUTO_INCREMENT,
-> `position_id` int(11) DEFAULT NULL,
-> `title` varchar(255) COLLATE latin1_general_cs NOT NULL,
-> `selectable` tinyint(4) NOT NULL DEFAULT '0',
-> PRIMARY KEY (`job_id`),
-> UNIQUE KEY `title` (`title`)
-> ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.14 sec)
mysql> DELIMITER &&
mysql> create trigger job_position_trigger
-> before insert on job_title for each row
-> begin
-> if new.position_id is null then
-> set @position = (select max(position_id)+1 from job_title);
-> if @position is null then set @position = 1; end if;
-> set new.position_id = @position;
-> end if;
-> end;
-> &&
Query OK, 0 rows affected (0.29 sec)
mysql> DELIMITER ;
mysql> insert into job_title (title, selectable) values ("test", 1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into job_title (title, selectable) values ("test2", 3);
Query OK, 1 row affected (0.00 sec)
mysql> select * from job_title;
+--------+-------------+-------+------------+
| job_id | position_id | title | selectable |
+--------+-------------+-------+------------+
| 1 | 1 | test | 1 |
| 2 | 2 | test2 | 3 |
+--------+-------------+-------+------------+
2 rows in set (0.00 sec)
你得到的错误,131072字节堆栈使用的9024字节和所需的128000字节是有意义的:9024 128000> 131072.
mysql堆溢出_为什么这个MySQL触发器会导致堆栈溢出?相关推荐
- 递归要素及太深导致堆栈溢出怎么办?
递归概念理解:递归实质还是函数的嵌套调用,只不过调用的函数凑巧还是它自己而已. 递归要素:(1)递推公式(2)终止条件 递归太深导致堆栈溢出怎么办? 2个手段: 1.限制递归深度,设置一个阈值,超过就 ...
- 导致堆栈溢出的原因什么?
导致堆栈溢出的原因: 1. 函数调用层次太深.函数递归调用时,系统要在栈中不断保存函数调用时的现场和产生的变量,如果递归调用太深,就会造成栈溢出,这时递归无法返回.再有,当函数调用层次过深时也可能导致 ...
- java mysql ssl警告_连接到MySQL数据库时有关SSL连接的警告
用于初始化与MySQL服务器的连接的默认值在最近已更改,并且(通过快速查看堆栈溢出时最流行的问题和答案)新值引起了很多混乱.更糟糕的是,标准建议似乎是完全禁用SSL,这在制造过程中有点麻烦. 现在,如 ...
- mysql 硬负载_为啥单机MySQL又遭遇瓶颈?MySQL主从复制替你解决单机问题
成长是一棵树,总是在你不知不觉的情况下快乐长大:成长是一株草,总是在你不知不觉的情况下长满大地:成长是一朵花,总是在你不知不觉的情况下开满山头. 这不,随着时间的迁移.项目网站的用户量.数据量持续上升 ...
- mysql炸包_炸裂!MySQL 82 张图带你飞
之前两篇文章带你了解了 MySQL 的基础语法和 MySQL 的进阶内容,那么这篇文章我们来了解一下 MySQL 中的高级内容. 其他文章: 本文思维导图如下. 事务控制和锁定语句 我们知道,MyIS ...
- mysql账号认证_浅谈MySQL用户账号认证方式
为了有效控制数据库用户的访问权限,在MySQL数据库中创建了一个新用户,但使用刚创建的用户和密码却发现连接不了MySQL数据库,通过查看官网手册及<MySQL技术内幕>一书,才逐渐熟悉My ...
- mysql映射表_[玩转MySQL之四]MySQL缓存机制
一.前言 在当今的各种系统中,缓存是对系统性能优化的重要手段.MySQL Query Cache(MySQL查询缓存)在MySQL Server中是默认打开的,但是网上各种资料以及有经验的DBA都建议 ...
- mysql替换开头_如何在MySQL的字符串开头搜索和替换特定字符?
为此,您可以使用INSERT().让我们首先创建一个表-mysql> create table DemoTable -> ( -> ZipCode varchar(200) -> ...
- ssh mysql环境搭建_搭建一个MySQL高可用架构集群环境
架构 使用一台MHA manager.一台MySQL master节点.两台MySQL slave节点 软件版本 虚拟机:Ubuntu 18 MySQL:5.7.32 MHA:0.54 环境检查 安装 ...
最新文章
- PostgreSQL 9.3 beta2 stream replication primary standby switchover bug?
- input数字开头不能为0_李商隐为初恋写诗,每句以数字开头,最后10字一直被仿从未被超越...
- python调用ping命令_在Python中调用Ping命令,批量IP的方法
- Android编程之ActivityManager: Segmentation fault
- 拓端tecdat|python在Scikit-learn中用决策树和随机森林预测NBA获胜者
- 考勤系统 服务器管理,考勤管理系统ZKNet Web Server管理
- coreldraw错误代码14001_应用程序配置不正确,应用程序未能启动 提示14001错误代码解决方法...
- UGUI——RectTransform详解
- 河北档案费2016年取消
- BZOJ1189: [HNOI2007]紧急疏散evacuate(二分答案,最大流)
- 手机二维码~~~ZXing简介
- c++语言表白超炫图形_数学公式的超酷表白我爱你
- HAL库配置STM32F1系列PWM驱动步进电机(一)
- 基于51单片机的故障灯检测
- python控制其它软件_python——实现ERP软件自动化操作
- 解决antimalware service executable程序占用CPU过高(有效)
- 请插入GemGPK智能卡解决办法。
- 考研复试英语自我介绍模版
- Invalid bound statement (not found): com.admin.dao.SysLogUserMapper.selectByUserAndLogou
- 智能运维案例系列 | 袋鼠云日志助力云南某金融机构日志平台建设,实现核心业务系统运维智能化...
热门文章
- codeforces Gargari and Bishops(很好的暴力)
- hdu2066一个人的旅行(多源点多汇点的最短路径问题)
- python播放本地视频_python opencv 读取本地视频文件 修改ffmpeg的方法
- kali里PHP文件502错误,解决Linux Kali iptables开放22端口失败等一系列问题
- 深入理解Python中的全局解释锁GIL
- CTFHUB《Web-信息泄露-备份文件下载》网站源码,
- 点到线段的距离_直线垂直,垂线的性质,点到直线的距离
- mysql执行计划性能_MySQL SQL性能分析Explain执行计划
- ①你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
- UVA1585 Score