问题标签 [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 - 混合表的 MySQL 事务支持
似乎我将需要与 MySQL 的事务,但我不知道如何在 Mysql 中使用混合 InnoDB/MyISAM 表管理事务,这一切似乎都是一团糟。
你可能会问我为什么要把桌子混在一起……答案是性能。正如许多开发人员所注意到的那样,InnoDB 表的性能通常很差,但作为回报,它会提供更高的隔离级别等......
有人对这个问题有什么建议吗?
mysql - MySQL AUTO_INCREMENT 不回滚
我正在使用 MySQL 的 AUTO_INCREMENT 字段和 InnoDB 来支持事务。我注意到当我回滚事务时,AUTO_INCREMENT 字段没有回滚?我发现它是这样设计的,但是有什么解决方法吗?
mysql - 将表从 MyISAM 更改为 InnoDB 会使系统变慢
您好我正在使用 Mysql 5.0.x
我刚刚将很多表从 MyISAM 更改为 InnoDB
使用 MyISAM 表大约需要1 分钟来安装我们的数据库使用 InnoDB 大约需要15 分钟来安装相同的数据库
为什么 InnoDB 需要这么长时间?
我能做些什么来加快速度?
数据库安装执行以下步骤
1) 删除架构
2) 创建架构
3) 创建表
4) 创建存储过程
5) 插入默认数据
6)通过存储过程插入数据
编辑:
插入默认数据需要大部分时间
mysql - 我应该计数(*)还是不?
我知道做这样的查询通常是个坏主意:
但是当我只想要计数时,我是否应该进行此查询,因为它允许表更改但仍会产生相同的结果。
或者更具体的
我感觉后者可能会更快,但还有其他需要考虑的事情吗?
更新:在这种情况下,我使用的是 InnoDB,抱歉没有更具体。
mysql - mySQL 数据库效率问题
我有一个数据库效率问题。
这是关于我的桌子的一些信息:
- 大约 500-1000 条记录的表 - 每天添加和删除记录。- 通常每天添加和删除的数量大致相同(活动记录的大小保持不变)
现在,我的问题是......当我删除记录时,......我应该(A)删除记录并将其移动到新表吗?
或者,...我 (B) 是否应该只有“活动”列并在不再活动时将记录设置为 0。
我犹豫使用 B 的原因是因为我的网站基于用户能够动态过滤/排序 500-1000 条记录的表(使用 ajax)......所以我需要它尽可能快可能,..(我猜一个有更多记录的表过滤起来会更慢)...我正在使用 mySQL InnoDB。
任何输入都会很棒,谢谢
安德鲁
mysql - 如何预测 MySQL 的临界点?
我在一个使用 MySQL 5.0 数据库和 InnoDB 表的大型 Web 应用程序上工作。在过去的几个月里,我们两次经历了以下情况:
- 数据库服务器运行良好数周,负载低且查询速度慢。
- 以前快速运行的频繁执行的查询将突然开始运行非常缓慢。
- 数据库负载峰值和站点挂起。
这两种情况的解决方案都是在慢查询日志中找到慢查询,并在表上创建一个新的索引来加速它。应用索引后,数据库性能恢复正常。
最令人沮丧的是,在这两种情况下,我们都没有对即将到来的厄运发出警告。我们所有的监控系统(例如,系统负载、CPU 使用率、查询执行率、慢查询)都告诉我们数据库服务器运行良好。
问题 1:我们如何预测或完全避免这些临界点?
我们没有定期做的一件事是运行 OPTIMIZE TABLE 或 ANALYZE TABLE。我们很难找到关于手动执行这些操作的频率(如果有的话)的良好经验法则。(由于这些命令 LOCK 表,我们不想不加选择地运行它们。)这些场景听起来像是未优化表的结果吗?
问题 #2:我们应该手动运行 OPTIMIZE 还是 ANALYZE?如果有,多久一次?
有关该应用程序的更多详细信息:数据库使用模式约为 95% 读取,5% 写入;数据库每秒执行大约 300 个查询;在这两种情况下,慢查询中使用的表是相同的,并且有数十万条记录。
mysql - INNODB 级联语法/逻辑问题
我正在创建的 SQL 数据库有问题。我正在尝试将其切换为使用 INNODB,但我似乎无法获得正确的级联语法(或可能的逻辑)。
这是代码错误的一部分。它不喜欢第 40 行。
以通常的神秘(至少对我而言)形式的错误输出:
编辑:
如果有帮助,这是我尝试输入的整个 SQL 文件。
php - mysqli_use_result() 和并发
如果在客户端执行大量处理,则不应使用 mysqli_use_result(),因为这将占用服务器并阻止其他线程更新从中获取数据的任何表。
这仅适用于 myISAM 表还是适用于 InnoDB?
mysql - InnoDB 一对一(或无)关系问题
我有两张桌子:
替代文字 http://img.zoodia.com/pics/643d0c93d59782ae16c0fbb85cabdb88.png
我的问题是轮胎不一定属于汽车,可能会有额外的轮胎坐在周围。尝试在没有正确 car_id 的情况下创建轮胎当然会引发错误。
现在我可以简单地删除引用,但我确信有一种处理这种情况的正确方法。
mysql - 被删除的行占用的空间会被重新使用吗?
我已经读过好几遍了,在 MySQL 中删除 InnoDB 表中的一行后,它的空间没有被重用,所以如果你在一个表中进行大量 INSERT,然后定期删除一些行,该表将使用越来越多的空间磁盘,就好像这些行根本没有被删除一样。
最近有人告诉我,已删除行占用的空间会被重新使用,但只有在某些事务完成之后才会重新使用,即使是这样 - 还没有完全使用。我现在很困惑。
有人可以让我明白这一点吗?我需要在 InnoDB 表中执行大量 INSERT,然后每 X 分钟我需要删除超过 Y 分钟的记录。我在这里遇到了不断增长的 InnoDB 表的问题,还是偏执狂?