innodb相关内容

MyISAM 和 InnoDB 有什么区别?

我知道之前有人问过这个问题,但大多数时候是针对特定的数据库或表提出的.我无法在此站点上找到描述这两种引擎及其差异的答案,而不考虑某人的特定数据库. 我希望将来能够在设计表或数据库方面做出更明智的决定,因此我正在寻找有关两种存储引擎之间差异的综合答案. MyISAM 和 InnoDB,当我试图在两者之间做出决定时我应该寻找什么? 解决方案 InnoDB 和 MyISAM 之间的主 ..
发布时间:2021-11-20 21:40:22 数据库

从表中删除数据行后,MySQL InnoDB 不释放磁盘空间

我有一个使用 InnoDB 存储引擎的 MySQL 表;它包含大约 2M 数据行.当我从表中删除数据行时,它没有释放分配的磁盘空间.运行优化表命令后,ibdata1文件的大小也没有减少. 有没有办法从 MySQL 回收磁盘空间? 我的处境很糟糕;该应用程序在大约 50 个不同的位置运行,现在几乎所有位置都出现了磁盘空间不足的问题. 解决方案 MySQL 不会减小 ibdata1 ..
发布时间:2021-11-20 21:38:15 数据库

从 frm 和 ibd 文件恢复表结构

我正在尝试在 PMA 中恢复数据库,但只能访问 frm 和 ibd 文件 - 而不是我理解您需要的 ib_log 文件. 我知道我可能无法恢复数据库数据,但是否可以从 frm 文件中恢复表的结构? 解决方案 我仅从 .frm 和 .idb 文件恢复了表格. 获取 SQL 查询以创建表 如果您已经知道表的架构,则可以跳过此步骤. 首先,安装 MySQL 实用程序.然后 ..
发布时间:2021-11-20 21:31:50 数据库

如何缩小/清除 MySQL 中的 ibdata1 文件

我在localhost中使用MySQL作为在R中执行统计的“查询工具",即每次运行R脚本时,我创建一个新数据库(A),创建一个新表(B),导入数据到 B,提交查询以获得我需要的,然后我删除 B 并删除 A. 它对我来说很好用,但我意识到 ibdata 文件的大小正在迅速增加,我没有在 MySQL 中存储任何内容,但是 ibdata1 文件已经超过 100 MB. 我在设置中或多或少使用 ..
发布时间:2021-11-20 21:30:26 数据库

TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT 最大存储大小

根据 MySQL 文档,有四种 TEXT 类型: TINYTEXT 文本 中文本 长文本 假设字符编码为 UTF-8,我可以在每种数据类型的列中存储的最大长度是多少? 解决方案 来自 文档 (MySQL 8) : 类型 |最大长度-----------+------------------------------------小文字 |255 (2 8−1) 字节正文 | ..
发布时间:2021-11-20 21:27:06 数据库

如何:清理 mysql InnoDB 存储引擎?

是否可以清理 mysql innodb 存储引擎,使其不存储已删除表中的数据? 还是我每次都必须重建一个新的数据库? 解决方案 这里有一个关于 InnoDB 的更完整的答案.这是一个有点漫长的过程,但值得付出努力. 请记住,/var/lib/mysql/ibdata1 是 InnoDB 基础架构中最繁忙的文件.它通常包含六种类型的信息: 表格数据 表索引 MVCC(多 ..
发布时间:2021-11-20 21:25:45 数据库

1114 (HY000):表已满

我正在尝试使用简单的查询向 InnoDB 表添加一行: INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills'); 但是当我尝试这个查询时,我得到以下信息: ERROR 1114 (HY000):表 zip_codes 已满 做一个 SELECT COUNT(*) FROM zip_codes ..
发布时间:2021-11-20 21:24:45 数据库

MySQL AUTO_INCREMENT 不回滚

我使用 MySQL 的 AUTO_INCREMENT 字段和 InnoDB 来支持事务.我注意到当我回滚事务时,AUTO_INCREMENT 字段没有回滚?我发现它是这样设计的,但是有什么解决方法吗? 解决方案 让我指出一些非常重要的事情: 你永远不应该依赖自动生成的键的数字特征. 也就是说,除了比较它们是否相等(=)或不相等()之外,您不应该做任何其他事情.没有关系运算符( ..
发布时间:2021-11-20 21:22:18 数据库

INT 和 VARCHAR 主键之间是否存在真正的性能差异?

在 MySQL 中使用 INT 与 VARCHAR 作为主键之间是否存在可测量的性能差异?我想使用 VARCHAR 作为参考列表的主键(想想美国各州、国家/地区代码),并且同事不会让 INT AUTO_INCREMENT 作为所有表的主键. 我的论点,详见这里,是INT和VARCHAR之间的性能差异可以忽略不计,因为每个INT外键引用都需要一个JOIN来理解引用,一个VARCHAR键将直接呈 ..
发布时间:2021-11-20 21:21:18 数据库

如何调试 MySQL 上超出的锁定等待超时?

在我的生产错误日志中,我偶尔会看到: SQLSTATE[HY000]:一般错误:1205超过锁等待超时;尝试重启事务 我知道那个时候哪个查询正在尝试访问数据库,但是有没有办法找出哪个查询在那个精确的时刻锁定了? 解决方案 是什么让这一切成为了事务这个词.从语句中可以看出查询试图更改一个或多个 InnoDB 表中的至少一行. 既然您知道查询,那么所有被访问的表都可能成为罪魁 ..
发布时间:2021-11-20 21:16:44 数据库

如何快速重命名 MySQL 数据库(更改架构名称)?

MySQL 手册位于 MySQL 涵盖了这一点. 通常我只是转储数据库并使用新名称重新导入它.对于非常大的数据库,这不是一个选项.显然 RENAME {DATABASE |SCHEMA} db_name TO new_db_name; 做坏事,只存在于少数版本中,总体来说是个坏主意. 这需要与 InnoDB 一起使用,它存储的东西与 MyISAM. 解决方案 对于 InnoDB ..
发布时间:2021-11-20 21:16:38 数据库

如何查看表或列的所有外键?

在 MySQL 中,如何获取指向特定表的所有外键约束的列表?特定的列?这与这个 Oracle 问题相同,但适用于 MySQL.> 解决方案 对于表格: SELECTTABLE_NAME、COLUMN_NAME、CONSTRAINT_NAME、REFERENCED_TABLE_NAME、REFERENCED_COLUMN_NAME从INFORMATION_SCHEMA.KEY_COLUMN_U ..
发布时间:2021-11-20 21:14:36 数据库

MySQL外键约束,级联删除

我想使用外键来保持完整性并避免孤儿(我已经使用了 innoDB). 我如何制作一个 DELETE ON CASCADE 的 SQL 语句? 如果我删除一个类别,那么我如何确保它不会删除与其他类别相关的产品. 数据透视表“categories_products"在另外两个表之间创建多对多关系. 类别- 身份证(INT)- 名称(VARCHAR 255)产品- ID- 姓名- 价钱 ..
发布时间:2021-11-20 21:11:15 数据库

MyISAM 与 InnoDB

我正在处理一个涉及大量数据库写入的项目,我会说(70% 插入和 30% 读取).这个比率还包括我认为是一次读取和一次写入的更新.读取可能很脏(例如,我在读取时不需要 100% 准确的信息). 有问题的任务将每小时处理超过 100 万次数据库事务. 我在网上阅读了很多关于 MyISAM 和 InnoDB 之间差异的内容,对于我将用于此任务的特定数据库/表,MyISAM 似乎是我的明显选择.从 ..
发布时间:2021-11-20 21:04:04 数据库

symfony 1.49 和 MySQL 5.5.8 的问题

当我使用 symfony propel:build-sql 生成模型时symfony 生成一个文件,在每个创建语句后添加“Type=InnoDB". 但是当我使用 symfony propel:insert-sql 在数据库中插入表时我有一个错误,所以我必须通过“Engine=InnoDB"手动更改“Type=InnoDB" 所以,问题是:有没有办法让 symfony 自动做这个改变? ..
发布时间:2021-06-05 20:13:43 PHP

设置表关系做什么“级联"、“置空"和“限制"做?

我想开始在新项目中使用表关系. 经过一些谷歌搜索后,我将 2 个表设置为 InnoDB: 我要链接的键是 ->users->userid(主要)->sessions->userid(索引) 在这个过程中我唯一不明白的是“更新时"和“删除时"的不同设置是什么 这里的选项是: --(什么都没有?) 级联 (???) Set Null(将所有内容都设置为 null ..
发布时间:2021-06-05 18:38:42 数据库

在相关表中插入mysql

我有两个MySQL表(InnoDB).我创建了一个 users 表,其中"id_users"作为关系键.然后,我创建了第二个表,该表在 users 表中具有对"id_users"的外键引用.如何在第二张表中插入MySQL? 我应该使用JOIN吗? 解决方案 联接仅用于 SELECT 语句.您只需要做两个简单的插入即可: 将行插入用户 获取用户的最后一个ID 将外键等于最后一 ..
发布时间:2021-05-20 19:12:31 PHP

我可以增加MySQL innoDB中的最大列数吗?

我在一个InnoDB表中需要4000列.InnoDB允许1017列.我可以增加这个数字吗?如何?我想在一个表中保存4000个时间序列.参见表时间序列表Evry列保存一个时间序列.列名是其他表的自动递增值.其他表包含时间序列名称和可选数据. 解决方案 直接回答:否 该怎么做: 如果要跨列显示值数组,请不要.用一个由两部分组成的 PRIMARY KEY (表的PK,加上它是哪个数组 ..
发布时间:2021-05-16 18:40:50 数据库