标签: innodb

innodb和XtraDB之间有明显的区别吗?

今天在serverfault上我读到了XtraDB.我读到它是innoDB的一个分支,并且在争论差异有多大?我是否会注意到这一变化,或者您是否认为如果我尝试一下这会浪费时间?

mysql innodb xtradb

2
推荐指数
1
解决办法
1211
查看次数

2
推荐指数
1
解决办法
864
查看次数

phpmyadmin 将 myisam 转换为 innodb

嘿,所以我最近意识到为了建立外键关系,我需要将我的表转换为 innodb。我是想这样做在phpMyAdmin和发现“存储引擎(类型)”选项。然而我的选项下拉列表仅限于:MyISAMMEMORY,和MRG_MYISAM

谁能解释一下这是为什么?

apache 2.0 
phpmyadmin 3.3.10 
mysql 5.0.67
php 5.2.2
Run Code Online (Sandbox Code Playgroud)

谢谢!

mysql innodb foreign-keys phpmyadmin

2
推荐指数
1
解决办法
8791
查看次数

"InnoDB并不真正支持交易" - 什么?

我们的系统工程师利用一切机会提醒每个人他讨厌MySQL的程度,以及他喜欢postgres以及我们需要切换的程度.他的抱怨有时看起来很合理,但最近他们把这种抱怨包括在内.他现在声称的一件事是"InnoDB并不真正做交易.它只是假装." 是的,这是直接引用.实际上,他声称innodb中所有与事务相关的命令实际上都是NOP.这是对他刚刚在五分钟前说过的话的解释:

"我最近发现了这一点,因为我把所有东西都保存在一个事务中.我去做了回滚,它不会让我.经过一些挖掘后我发现innodb中的所有事务命令实际上都是NOP."

这对我来说听起来非常荒谬.这意味着没有人能够使用innodb成功回滚交易,或者实际上甚至已经执行了一次交易.这意味着innodb的开发者是完全撒谎,并认为我们都愚蠢到可以堕落他们的伪造.

有丝毫的可能吗,他的主张有多少真理?或许,有一种扭曲的方式来解释这一点,听起来并不那么疯狂?

编辑澄清:我不是想咆哮.我问,因为我无法找到他的主张的证据,他是否完全错了,或者是否有一些我应该知道的事实.

innodb transactions

2
推荐指数
1
解决办法
1429
查看次数

更改行格式时,为什么我的表格大小没有减少?

我们目前正在使用带有innodb的MySQL,我们有一些紧凑的大型表格.当我将行格式更改为压缩时,我们仍然看到表格的大小相同.有谁知道这个的原因?

mysql innodb

2
推荐指数
1
解决办法
2325
查看次数

如何在Laravel 3/MySQL中运行'SELECT FOR UPDATE'

我试图使用Laravel 3执行SELECT ... FOR UPDATE查询:

SELECT * from projects where id = 1 FOR UPDATE;
UPDATE projects SET money = money + 10 where id = 1;
Run Code Online (Sandbox Code Playgroud)

我现在已经尝试了好几个小时:

DB::connection()->pdo->exec($query);
Run Code Online (Sandbox Code Playgroud)

DB::query($query)
Run Code Online (Sandbox Code Playgroud)

我也尝试添加START TRANSACTION; ... COMMIT;到查询,我试图分开SELECTUPDATE在这样两个不同的部分:

DB::query($select);
DB::query($update);
Run Code Online (Sandbox Code Playgroud)

有时我会受到0行的影响,有时我会收到类似这样的错误:

SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active.  Consider using PDOStatement::fetchAll().  Alternatively, if your code is only ever going to run against mysql, you may enable query …
Run Code Online (Sandbox Code Playgroud)

mysql innodb locking laravel laravel-3

2
推荐指数
1
解决办法
1852
查看次数

如何加快 MYSQL 更新?

我有一个users带有日期时间字段的表last_seen_at。更新这个字段大约需要 120 毫秒,我希望它快得多,因为我几乎在我网站上的每个页面加载上都这样做。我不知道为什么它这么慢:大约有 55,000 条记录,这些记录不应该有问题(我曾想过)。

这是表信息:

mysql> 像“用户”一样显示表状态;
+-------+--------+---------+------------+-------+- ---------------+-------------+-----------------+-- ------------+-----------+----------------+-------- -------------+-------------+------------+--------- --------+-----------+----------------+---------+
| 姓名 | 发动机 | 版本 | 行格式 | 行 | Avg_row_length | 数据长度| 最大数据长度 | 索引长度 | 数据免费 | 自动增量| 创建时间 | 更新时间 | 检查时间 | 整理 | 校验和 | 创建选项 | 评论 |
+-------+--------+---------+------------+-------+- ---------------+-------------+-----------------+-- ------------+-----------+----------------+-------- -------------+-------------+------------+--------- --------+-----------+----------------+---------+
| 用户 | InnoDB | 10 | 紧凑型 | 55609 | 954 | 53051392 | 0 | 43352064 | 26214400 | 67183 | …

mysql sql optimization innodb

2
推荐指数
1
解决办法
1万
查看次数

将存储引擎从 MyISAM 更改为 InnoDB - 一次所有表 - 使用 phpmyadmin

我在 mysql 数据库中有 100 个表,并且都有存储引擎:MyISAM。我想一次将他们的存储引擎全部更改为 innoDB 并且我不想使用:

1.PHP (如何将 MyISAM 中的所有表转换为 InnoDB?

  1. Laravel( Laravel & InnoDB )

  2. 一次一张表。(如何在phpmyadmin中更改数据库的存储引擎?

  3. SQL 查询。(如何将表存储引擎从 MyISAM 更改为 InnoDB

  4. 通过 xampp 或类似的方式。(如何在XAMPP中设置默认存储引擎为InnoDB

所以我想改变:ALL TABLE STORAGE ENGINE AT ONCE使用phpmyadmin界面。

有什么帮助吗?

myisam innodb phpmyadmin

2
推荐指数
1
解决办法
1万
查看次数

如何将所有 InnoDB 表转换为 MyISAM?

大家好,我正在寻找一种方法(sql 代码),我可以使用它在 WordpressDB 中将所有 InnoDB 转换为 MyISAM 。

从现在开始我的代码是:

SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME,' ENGINE=MyISAM;') FROM Information_schema.TABLES WHERE ENGINE = 'InnoDB'
Run Code Online (Sandbox Code Playgroud)

这让我回来:

ALTER TABLE db.wp_comments ENGINE=MyISAM;
ALTER TABLE db.wp_links ENGINE=MyISAM;
ALTER TABLE db.wp_options ENGINE=MyISAM;
ALTER TABLE db.wp_postmeta ENGINE=MyISAM;
ALTER TABLE db.wp_posts ENGINE=MyISAM;
ALTER TABLE db.wp_term_relationships ENGINE=MyISAM;
ALTER TABLE db.wp_term_taxonomy ENGINE=MyISAM;
ALTER TABLE db.wp_termmeta ENGINE=MyISAM;
ALTER TABLE db.wp_terms ENGINE=MyISAM;
ALTER TABLE db.wp_usermeta ENGINE=MyISAM;
ALTER TABLE db.wp_users ENGINE=MyISAM;
Run Code Online (Sandbox Code Playgroud)

现在我想一次执行所有这些行,我想将所有结果保存在一个变量中并执行它们。但是一个 sql 变量只能保存一行......我现在如何使用简单的 sql 代码一次执行所有这些行?

提前致谢

PS:我可以使用“更新”来解决这个问题,因为更新可能会将引擎更新为MyISAM?

mysql sql myisam innodb

2
推荐指数
1
解决办法
4071
查看次数

在InnoDB MySQL中刷新到磁盘之前,脏的数据库页面通常在内存中保留多长时间?

我所说的数据库页面是:

https://dev.mysql.com/doc/internals/zh-CN/innodb-page-structure.html

现在,当我们对它发出查询时,这些页面将被加载到内存中,并且仅在此处进行更改并被标记为脏

我不确定这取决于操作系统还是数据库,但是我的问题是这些页面通常在内存中停留多长时间?

可以说,我们有一个用于高负载Web服务器的数据库,它的流量很大,缓冲区大小大约为1gb左右(不确定通常有多少个数据库服务器),现在这1gb中有多少是脏页?

如果没有备用电源而断电,那么对这些脏页的所有更改都会丢失正确吗?(基本上,我想知道是否发生断电,如果没有备用电源,并且发生大量插入和查询,那么内存中脏数据将丢失的估计百分比是多少?)

例如,这些脏页是否有可能在繁忙的服务器上停留超过12或24小时?

编辑:通过脏页面,我的意思是页面在内存中被修改,例如其中的一行被更新或删除

mysql innodb computer-forensics

2
推荐指数
1
解决办法
343
查看次数