innodb相关内容
我不知道这是否是 INNODB 的预期行为,但我真的认为这很奇怪. 如果我通过 MYISAM 使用相同的 SQL 语句,行为会按预期发生. MYISAM 创建表 main_database.numero (id INT NOT NULL AUTO_INCREMENT,主键(id)) 引擎 = MYISAM 默认字符集 = utf8mb4 整理 = utf8mb4_unicode_ci
..
我在 4GB RAM 云服务器上运行 MariaDB 10.0.15,并带有用于数据库的本地 SSD 磁盘. 我的模特: 用户 right_holders 曲目---n>raw_detections 我有这张表 raw_detections 有超过 1 亿条记录.我想对特定用户在特定时期内的所有 raw_detections 求和.这是我遇到问题的查询: 选
..
我最近安装了 MySQL 5.5.我使用 InnoDB 作为我所有数据库的引擎.我注意到mysql 数据库的默认值和它的所有表(用户、数据库等)都是MyISAM.他们有什么理由不能/不应该是InnoDB?有谁知道 MySQL 是否需要 mysql db 为 MyISAM? 解决方案 警告不要将 mysql 数据库中的 MySQL 系统表从 MyISAM 转换为 InnoDB 表!这是不受支
..
我有两个包含很多行的表,我需要为第一个 (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
..
此问题仅解决了如何将“短"CHAR 和 VARCHAR 列存储在 InnoDB 表中. CHAR(10) 列是否正好占用 10 个字节? 尾随空格会怎样? 每个字符需要超过 1 个字节的字符集怎么办? VARCHAR(10) 与 CHAR(10) 有何不同? EXPLAIN 意味着所有索引的 varchars 都包含一个 2 字节长度的字段.真的是2个字节吗?或者它可能是 1 个字节
..
考虑这张表: CREATE TABLE `Alarms` (`AlarmId` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`DeviceId` BINARY(16) NOT NULL,`代码` BIGINT(20) UNSIGNED NOT NULL,`Ended` TINYINT(1) NOT NULL DEFAULT '0',`NaturalEnd`
..
我已设置 表级 InnoDB 数据库加密 在 MariaDB 上. 我想知道是否有任何方法可以确认数据是否真正加密.我尝试在 /var/lib/mysql/ibdata1 中搜索表中的示例数据,但我不知道这是否是一个可靠的测试. 解决方案 我在 mariadb.com 上发布了这个问题,建议对一些已知数据执行 grep. Rackspace 的一位 DBA 建议改用 strin
..
常规:给定多个列的外键,其中一些可能为 NULL. 默认情况下 (MATCH SIMPLE) MySQL/MariaDB InnoDB 只要多列外键的至少一列为 NULL,就不会检查外键. 要求:如果从父项中删除一行,则对应子项的一列应设置为 NULL,但不能将外键中的两列都设置为 NULL. 示例/说明:可能会列出一个学生参加讲座,也可以选择参加其中一个讲座组.如果讲座被删除,则应
..
我在一个环境设置中,使用 MariaDB 10.0.12-MariaDB Homebrew 运行 OSX 我搞砸了安装,所以我从我的设置中完全删除了 MySQL 和 MariaDB,然后重新开始. 安装完 MariaDB 后,我通过生产服务器的 DB Dump 重新导入了我的数据库 (innoDB).它工作得很好.重新启动后,第二天,我无法再访问数据库: 引擎中不存在表“my.ta
..
我有整个 xampp/mysql 文件夹的备份.如何在全新安装的 XAMPP 上使用它来恢复我的旧数据库? 简单地将旧的 xampp/mysql 文件夹复制到新的 xampp 会导致以下 mysql 错误: InnoDB:InnoDB 数据中的表 veno/sls37_finder_links_termsc字典的表空间 id 为 1171,但具有该 id 或名称的表空间不存在.您是否删
..
我这几天一直在解决一个问题.位于我们 Box 帐户上的本地 mediawiki 页面已自行销毁,我们一直在努力使其上线.使用 XAMPP 控制面板 v3.2.1,错误很多,因此我们决定更新 XAMPP (v3.2.2) 并将“htdocs"和“mysql/data"文件移至新数据库. 第一个错误: 9:50:21 AM [mysql] 正在尝试启动 MySQL 应用程序...上午 9:5
..
在我的一个 InnoDB 表中执行条件 DELETE 操作时,显然需要在 ibdata1 中创建一些临时表,但硬盘已满,mysql 崩溃.在删除 ibdata1 文件(~30 GB)之前,我无法让它重新启动. 现在 mysql 再次启动,但数据库中的所有表似乎都已损坏(当我执行 REPAIR TABLE tablename EXTENDED 时,我得到: +----------------
..
DROP TABLE IF EXISTS `transactions`;创建表`事务`(`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`purchase_date` 日期时间 DEFAULT NULL,主键(`id`)) 引擎=InnoDB 默认字符集=utf8;INSERT INTO `transactions` (`purchase_date`)
..
使用 MySQL 5.1.49,我正在尝试实现一个标记系统我遇到的问题是一个有两列的表:id(autoincrement), tag(unique varchar) (InnoDB) 使用查询时,INSERT IGNORE INTO tablename SET tag="whatever",即使插入被忽略,自动递增 id 值也会增加. 通常这不会是一个问题,但我希望有很多可能的尝试为这
..
这里是这个问题背后的原因的链接:NOW() 保证 DATETIME InnoDB 事务? 因此,为了确保具有任意数量查询(例如20+ 个查询)的单个事务在多个表中具有 100% 准确且一致的 NOW() 值,使用 NOW()(不是当前的 TIMESTAMP)分配等效于 DATETIME 的变量的 php 方法是什么. 解决方案 一种方法可能是:
..
我正在阅读有关 innodb 事务的手册,但仍然有很多不清楚的地方.例如,我不太了解以下行为: -- 客户端 1 -- 客户端 2mysql>创建简单表(col int)引擎=innodb;mysql>插入简单值(1);查询正常,1 行受影响(0.00 秒)mysql>插入简单值(2);查询正常,1 行受影响(0.00 秒)mysql>选择@@tx_isolation;+---+|@@tx_is
..
我在 InnoDB 表上有一个 mysql 查询,如下所示: UPDATE items SET qty = qty + 5 WHERE item_id = 1234 LIMIT 1; 我需要为此使用事务吗?不使用事务会发生什么不希望的事情吗? 解决方案 不会发生严重的事情.默认情况下,MySQL 将所有单个更新/插入/删除命令包装在一个事务中.如果更新出现问题,那么事务应该正确回滚.
..
是否可以使用 MySQL 5.5 获取当前事务 ID?像…… BEGIN;选择 CURRENT_XID();-- 富...选择 CURRENT_XID();-- 还有 foo回滚;选择 CURRENT_XID();-- 不是 foo 实际值并不重要,只要我能得到一些唯一标识符,并且在同一事务中始终返回相同的值. 解决方案 这是一个糟糕的解决方案: CREATE FUNCTION CU
..
我这样做是为了确保这个进程的实例只运行一次(伪代码 php/mysql innodb): 开始交易$rpid = SELECT `value` FROM 锁 WHERE name = "lock_name" FOR UPDATE$pid = posix_getpid();如果($rpid > 0){$isRunning = posix_kill($rpid, 0);if(!$isRunning)
..
这两个锁定读取子句的确切区别是什么: SELECT ... FOR UPDATE 和 SELECT ... LOCK IN SHARE MODE 为什么你需要一个而不是另一个? 解决方案 我一直试图了解两者之间的区别.我会记录我的发现,希望对下一个人有用. LOCK IN SHARE MODE 和 FOR UPDATE 都确保没有其他事务可以更新选定的行.两者的区别在于读取数
..