innodb相关内容

MySQL系统数据库表可以转换成InnoDB吗?

我最近安装了 MySQL 5.5.我使用 InnoDB 作为我所有数据库的引擎.我注意到mysql 数据库的默认值和它的所有表(用户、数据库等)都是MyISAM.他们有什么理由不能/不应该是InnoDB?有谁知道 MySQL 是否需要 mysql db 为 MyISAM? 解决方案 警告不要将 mysql 数据库中的 MySQL 系统表从 MyISAM 转换为 InnoDB 表!这是不受支 ..
发布时间:2022-01-15 20:35:33 数据库

Mysql -- UPDATE table SET column = SELECT COUNT(*) FROM (SELECT * FROM table2 WHERE table2.id = table.id)) 不可能

我有两个包含很多行的表,我需要为第一个 (table_1) 中的每一行维护“索引"信息.所以我写了一个查询不直接使用 COUNT() [这是慢,慢,慢].所以我尝试: 更新 table_1 SET table_1.column_3 = (选择计数(*)从(SELECT DISTINCT column_5 FROM table_2 WHERE table_2.id_t1 = table_1.id ..
发布时间:2022-01-15 20:32:12 PHP

InnoDB 如何存储字符列?

此问题仅解决了如何将“短"CHAR 和 VARCHAR 列存储在 InnoDB 表中. CHAR(10) 列是否正好占用 10 个字节? 尾随空格会怎样? 每个字符需要超过 1 个字节的字符集怎么办? VARCHAR(10) 与 CHAR(10) 有何不同? EXPLAIN 意味着所有索引的 varchars 都包含一个 2 字节长度的字段.真的是2个字节吗?或者它可能是 1 个字节 ..
发布时间:2022-01-15 20:29:44 数据库

验证 MariaDB 10.1 加密

我已设置 表级 InnoDB 数据库加密 在 MariaDB 上. 我想知道是否有任何方法可以确认数据是否真正加密.我尝试在 /var/lib/mysql/ibdata1 中搜索表中的示例数据,但我不知道这是否是一个可靠的测试. 解决方案 我在 mariadb.com 上发布了这个问题,建议对一些已知数据执行 grep. Rackspace 的一位 DBA 建议改用 strin ..
发布时间:2022-01-15 20:07:13 其他开发

多列外键:将单列设置为 Null “ON DELETE"而不是全部

常规:给定多个列的外键,其中一些可能为 NULL. 默认情况下 (MATCH SIMPLE) MySQL/MariaDB InnoDB 只要多列外键的至少一列为 NULL,就不会检查外键. 要求:如果从父项中删除一行,则对应子项的一列应设置为 NULL,但不能将外键中的两列都设置为 NULL. 示例/说明:可能会列出一个学生参加讲座,也可以选择参加其中一个讲座组.如果讲座被删除,则应 ..
发布时间:2022-01-15 20:03:17 数据库

MariaDB 数据库损坏:引擎中不存在表

我在一个环境设置中,使用 MariaDB 10.0.12-MariaDB Homebrew 运行 OSX 我搞砸了安装,所以我从我的设置中完全删除了 MySQL 和 MariaDB,然后重新开始. 安装完 MariaDB 后,我通过生产服务器的 DB Dump 重新导入了我的数据库 (innoDB).它工作得很好.重新启动后,第二天,我无法再访问数据库: 引擎中不存在表“my.ta ..
发布时间:2022-01-15 20:02:52 数据库

如何在 XAMPP 中恢复 mysql 数据库?

我有整个 xampp/mysql 文件夹的备份.如何在全新安装的 XAMPP 上使用它来恢复我的旧数据库? 简单地将旧的 xampp/mysql 文件夹复制到新的 xampp 会导致以下 mysql 错误: InnoDB:InnoDB 数据中的表 veno/sls37_finder_links_termsc字典的表空间 id 为 1171,但具有该 id 或名称的表空间不存在.您是否删 ..
发布时间:2022-01-14 08:49:58 数据库

InnoDB:试图打开以前打开的表空间

我这几天一直在解决一个问题.位于我们 Box 帐户上的本地 mediawiki 页面已自行销毁,我们一直在努力使其上线.使用 XAMPP 控制面板 v3.2.1,错误很多,因此我们决定更新 XAMPP (v3.2.2) 并将“htdocs"和“mysql/data"文件移至新数据库. 第一个错误: 9:50:21 AM [mysql] 正在尝试启动 MySQL 应用程序...上午 9:5 ..
发布时间:2022-01-14 08:39:57 数据库

MySQL InnoDB 表损坏——如何修复?

在我的一个 InnoDB 表中执行条件 DELETE 操作时,显然需要在 ibdata1 中创建一些临时表,但硬盘已满,mysql 崩溃.在删除 ibdata1 文件(~30 GB)之前,我无法让它重新启动. 现在 mysql 再次启动,但数据库中的所有表似乎都已损坏(当我执行 REPAIR TABLE tablename EXTENDED 时,我得到: +---------------- ..
发布时间:2022-01-12 11:16:44 数据库

防止 MySQL 重复插入自动递增

使用 MySQL 5.1.49,我正在尝试实现一个标记系统我遇到的问题是一个有两列的表:id(autoincrement), tag(unique varchar) (InnoDB) 使用查询时,INSERT IGNORE INTO tablename SET tag="whatever",即使插入被忽略,自动递增 id 值也会增加. 通常这不会是一个问题,但我希望有很多可能的尝试为这 ..
发布时间:2022-01-09 12:09:21 数据库

在 php 中获取 DATETIME 并将其发布到 MySQL 以保持事务一致性

这里是这个问题背后的原因的链接:NOW() 保证 DATETIME InnoDB 事务? 因此,为了确保具有任意数量查询(例如20+ 个查询)的单个事务在多个表中具有 100% 准确且一致的 NOW() 值,使用 NOW()(不是当前的 TIMESTAMP)分配等效于 DATETIME 的变量的 php 方法是什么. 解决方案 一种方法可能是: ..
发布时间:2022-01-06 21:02:55 PHP

inno db 隔离级别和锁定

我正在阅读有关 innodb 事务的手册,但仍然有很多不清楚的地方.例如,我不太了解以下行为: -- 客户端 1 -- 客户端 2mysql>创建简单表(col int)引擎=innodb;mysql>插入简单值(1);查询正常,1 行受影响(0.00 秒)mysql>插入简单值(2);查询正常,1 行受影响(0.00 秒)mysql>选择@@tx_isolation;+---+|@@tx_is ..
发布时间:2022-01-06 21:00:40 数据库

单个更新查询所需的事务?

我在 InnoDB 表上有一个 mysql 查询,如下所示: UPDATE items SET qty = qty + 5 WHERE item_id = 1234 LIMIT 1; 我需要为此使用事务吗?不使用事务会发生什么不希望的事情吗? 解决方案 不会发生严重的事情.默认情况下,MySQL 将所有单个更新/插入/删除命令包装在一个事务中.如果更新出现问题,那么事务应该正确回滚. ..
发布时间:2022-01-06 20:59:14 数据库

使用 MySQL 获取当前事务 ID

是否可以使用 MySQL 5.5 获取当前事务 ID?像…… BEGIN;选择 CURRENT_XID();-- 富...选择 CURRENT_XID();-- 还有 foo回滚;选择 CURRENT_XID();-- 不是 foo 实际值并不重要,只要我能得到一些唯一标识符,并且在同一事务中始终返回相同的值. 解决方案 这是一个糟糕的解决方案: CREATE FUNCTION CU ..
发布时间:2022-01-06 20:50:15 数据库

MySQL InnoDB:“FOR UPDATE"和“LOCK IN SHARE MODE"之间的区别

这两个锁定读取子句的确切区别是什么: SELECT ... FOR UPDATE 和 SELECT ... LOCK IN SHARE MODE 为什么你需要一个而不是另一个? 解决方案 我一直试图了解两者之间的区别.我会记录我的发现,希望对下一个人有用. LOCK IN SHARE MODE 和 FOR UPDATE 都确保没有其他事务可以更新选定的行.两者的区别在于读取数 ..
发布时间:2022-01-06 20:32:01 数据库