问题标签 [innodb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - InnoDB“表已满”错误
我在 RedHat Enterprise Linux 4 服务器上有一个 MySQL InnoDB 表,在尝试导入以前使用备份的数据库后,mysqldump
出现“表已满”错误。
该表当前有 463,062 行,ibdata1
磁盘上的文件当前为 3.37Gb。一个快速的 " SHOW VARIABLES;
" 显示innodb_data_file_path
设置为ibdata1:10M:autoextend
,并且文件系统是 ext3,所以我希望它有足够的空间来增长。
有什么想法可以让我确切地确定问题所在吗?
mysql - MySQL 竞争条件
这是否会导致 MySQL (InnoDB) 的竞争条件:
开始交易。
尝试获取记录。
如果记录不存在,则返回。
如果记录存在,请将其删除并添加一个日志条目,说明已删除。
结束事务(提交/回滚)。
是否可以在 2b 中的删除步骤之前启动另一个进程,检测记录的存在,然后让两个进程在日志中输入项目删除条目?
我需要采取什么预防措施吗?
谢谢。
mysql - 未提交读取的 InnoDB 死锁!- Java - Glassfish - EJB3 (JPA/休眠)
几天前,我在使用 Glassfish 的 Java 应用程序上遇到死锁问题 - EJB3 和 Mysql InnoDB
配置:Mysql InnoDB:Ver 14.12 Distrib 5.0.51a,适用于 debian-linux-gnu (i486),使用 readline 5.2
应用服务器:Glassfish v2.1
EJB3 的持久性 - JPA - Hibernate
为了简单起见,我有一个带有 servlet 的 SOA 系统,用于处理用户对服务的订阅、登录、注销、支付和注册等......生成“低信用”警告、付款验证等...
我的问题:在负载测试期间我到处都是死锁(100 000 个用户模拟 - 30 个请求/秒)
返回的堆栈样本:
注意结尾,这是我完成的代码:net.xxx.server.dao.impl.PaymentDAOImpl.listPaymentsByStateAndCompany(PaymentDAOImpl.java:270)
这个功能:
此功能在不进行负载测试时运行良好,例如我们每 5 秒有 1 个请求。
在负载测试期间,我们的作业运行频率很高(例如每 5 秒)。
我不仅得到这个错误,还有其他一些其他工作的错误(仍然死锁)!
在 MYSQL 上:
死锁示例:
事务隔离
我在互联网上阅读了有关事务隔离的内容。
在 glassfish 上,我们可以设置事务隔离级别,我把它设置为未提交的。
它没有用,然后我在mysql中设置了相同的级别:
SVP 有人可以告诉我可能是什么问题吗?我真的不知道!!!!
顺便说一句,我在互联网上看到您可以为每个请求选择事务隔离级别...是否可以直接为 JPA 上的方法设置事务隔离级别?因为我认为只有进行全局数据更新的工作(比如减少 15000 个服务)应该是未提交的,我错了吗?
mysql - innodb 和 XtraDB 之间有明显的区别吗?
今天在 serverfault 上我读到了 XtraDB。我读到它是 innoDB 的一个分支,并且很奇怪差异有多大?如果我尝试一下,我会注意到这种变化还是你认为它只是浪费时间?
mysql - 从服务器上存储过程中的临时表,设置为只读
我们已经建立了一个复制方案主/从,最近我们遇到了问题,因为一些用户直接在从而不是主上写,使得整个设置不一致。
为了防止这些问题再次发生,我们决定从访问从站的用户中删除插入、删除、更新等权限。问题是某些存储过程(用于读取)需要临时表。
我读到将全局变量 read_only 更改为 true 会做我想做的事情并允许存储过程正常工作(http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html# sysvar_read_only),但我不断收到错误:
MySQL 服务器使用 --read-only 选项运行,因此无法执行此语句 (1290)
我使用的存储过程(用于测试目的)是这个:
创建临时表和删除表与 readonly 标志一起工作正常 - 如果我评论 INSERT 行,它运行正常 - 但每当我想从该临时表中插入或删除时,我都会收到错误消息。
我使用 Mysql 5.1.29-rc。我的默认存储引擎是 InnoDB。
在此先感谢,这个问题真的让我发疯了。
mysql - 如何在非阻塞环境中解决这个 MySQL/Innodb 死锁问题?
我们使用 MySQL 和 Innodb 引擎存储。我们有一个“事件”环境,可以在一个表上发送多个并发请求。基本上,它的工作原理是这样的:我们有一个 find_or_insert 函数可以做到这一点: - find() -> 在结果上,如果为空 -> 插入 -> 在结果上 find()
我们使用的是非阻塞 MySQL 驱动程序,所以基本上,当我们同时启动这个小算法不止一次时,它会在插入第一个结果之前运行所有的发现......等等。
不幸的是,我们收到这些错误:“尝试获取锁定时发现死锁;尝试重新启动事务”
任何人都可以帮忙吗?
[编辑]:另外,我实际上不明白为什么 MySQL 需要锁定表只是为了在这里插入一个新元素。最初我虽然自动增量是这里的罪魁祸首,所以我删除了它......但我仍然得到错误。有没有办法防止 MySQL 在插入时锁定表?
mysql - mysql性能
我们正在使用 innoDB 引擎在 MySql 中开发我们的数据库。该数据库包含一个 varchar 类型的列,每个条目包含大约 3000 个字符。我们将在此列上提供搜索。为了加快速度,我们需要在该列上添加索引。你能提供一些这方面的信息吗?
我们需要放入哪种类型的索引来加快搜索速度?我们是否需要对它进行一些其他的关注以提高性能?
mysql - 删除巨大 MySQL 表的最快方法
我有一个巨大的 MySQL (InnoDB) 数据库,会话表中有数百万行,这些行是由与我们在同一台服务器上运行的不相关、故障爬虫创建的。不幸的是,我现在必须解决这个烂摊子。
如果我尝试,truncate table sessions;
它似乎需要很长时间(超过 30 分钟)。我不关心数据;我只想让桌子尽快被消灭。有没有更快的方法,还是我必须一夜之间坚持下去?
mysql - 你如何在 OS X 上使用 MySQL InnoDB 表?
由于 my.cnf 设置问题,我在 OS X 上使用 InnoDB MySQL 5.0 时遇到了麻烦。列出陷阱以防它帮助任何人:
如果 InnoDB 被禁用,请检查错误日志(hostname.err,在数据目录中)。我有一个空设置,我改变了:
希望这可以帮助某人。我正在运行一个 Rails 应用程序并在我的会话表中出现错误。
mysql - 在嵌套选择中使用父查询的结果
我确信这是一个相当微不足道的问题,但我不确定用谷歌搜索什么来找到解决方案。
我有一个看起来像这样的表:
我通过从我的网上银行服务中剪切和粘贴数据来填充它。值可以是负值或正值,日期和名称包含的内容应该相当明显;)我构建了一个查询,让我看到每个月的底线:
现在我想将月底帐户中的总累积资金添加为附加列。
123 并不是我想要的,但我不明白如何从该子查询中的 DATE_FORMAT 获取结果。
这甚至是解决问题的正确方法吗?
这主要是一个个人练习(在一个非常小的数据集上运行),所以我不太关心性能,可读的 SQL 更为重要。
我在 MySQL 5.0.45 上运行 InnoDB 表