草庐IT

innodb-multiple-tablespaces

全部标签

mysql - 我可以在 InnoDB 事务期间检索挂起的查询吗?

我开始交易。然后我需要回滚它。我能否以某种方式获得以这种方式“丢弃”的查询列表?(ps:当然我可以事先记录它们;我想知道这是否可以以更“自然”的方式完成) 最佳答案 如果你使用的是最新的MySQL5.1,这应该可以工作:SHOWENGINEINNODBSTATUS包括InnoDB引擎的事件事务列表。每个都以事务ID和进程ID为前缀,看起来有点像这样:---TRANSACTION0290328284,ACTIVE0sec,processno3195,OSthreadid34831rollbackofSQLstatementMySQLt

MySQL 数据库引擎 : MyISAM for information_schema but InnoDB for other databases

我目前对MySQL中的所有数据库都使用InnoDB,但是我只是注意到我的information_schema数据库对非MEMORY的表使用MyISAM。我正在调查InnoDB/MyISAM问题。虽然我认为这不是原因,但我担心这种混合。数据库最初是用MyISAM建立的。后来更新了my.cnf文件以将引擎重置为InnoDB。我正在使用MySQL5.5.10。如果将您的information_schema数据库设置为MyISAM,但所有其他数据库都设置为MySQL,可能会出现什么问题?对于那些寻求帮助的人:如果您在寻找答案时遇到了这个问题,或者您想了解更多信息,请查看您的默认数据库引擎:sh

php - innodb_lock_wait_timeout 增加超时

我正在使用MySQL数据库并尝试在插入后立即更新记录,因此出现以下错误ER_LOCK_WAIT_TIMEOUT:超出锁定等待超时;尝试重新启动事务。所以我通过以下查询减少超时:-setGLOBALinnodb_lock_wait_timeout=1所以我的问题是:-可以这样做吗?会不会导致性能问题等其他问题?谢谢你的帮助。 最佳答案 如果这是一个Web应用程序并且您正试图从一个页面到下一个页面挂起事务,不要;它不会起作用。“刚好”是什么意思?如果您在两个语句之间什么都不做,即使是1秒的超时也应该足够大。mysql>SETGLOBAL

mysql - 使用 MySQL/InnoDB 重新平衡表分片

我有一个巨大的InnoDB表(>1TB,>1B行),我想对其进行分片:我想从那个大表中创建多个较小的独立表。怎么做?我已经尝试过的:通过从原始表中选择行并将它们插入分区来将行移动到分区。这需要很长时间,并且在操作期间保持行同步很困难(但似乎可以使用触发器,只要分区在同一台服务器上)。我还没有找到现成的工具来执行此操作。复制整个表,然后删除不属于分区的行。仍然很慢,特别是考虑到表格的大小。显然,这就是MySQLFabric所做的。随机的疯狂想法:离线拆分.idb文件,并将其导入服务器,但我不知道是否存在能够执行此操作的工具。显示创建表:CREATETABLE`Huge`(`account

mysql - 如何解决 InnoDB 表的开销和有效问题?

问题:1-开销是什么意思?当我在MyISAM表上单击“优化表”按钮时,开销和有效数据都消失了。我想知道它对我的table有什么影响?2-我真的需要关心开销和有效值吗?如何解决InnoDB表的Overhead和Effective问题? 最佳答案 修复InnoDB不像单击按钮那么简单。MyISAM是。在幕后,OPTIMIZETABLE将对名为mytb的MyISAM表执行此操作:创建与mytb结构相同的空临时表将MyISAM数据从mytb复制到临时表删除表mytb将临时表重命名为mytb运行ANALYZETABLE针对mytb和存储索引统

mysql - 导入 MySQL 转储文件时如何覆盖 ENGINE=INNODB 参数?

我有一个大转储(数十GB),我想将它导入一个新表而不考虑ENGINE=INNODB参数。我尝试了几个专用于大文件的编辑器来编辑转储,但是保存修改总是需要很多时间,所以忽略ENGINE=INNODB参数并覆盖它会更有意义(例如默认引擎)。导入然后更改引擎不是一种选择,因为InnoDB导入转储的速度非常慢,因此需要几天时间。 最佳答案 mysqldump--compatible=no_table_options对我有用 关于mysql-导入MySQL转储文件时如何覆盖ENGINE=INNOD

mysql - 使用 Django 将现有的 MyISAM 数据库转换为 InnoDB

有没有办法可以转换一个完整的MyISAM数据库到InnoDB(以一种将创建所有外键约束的方式,就像我从头开始运行syncdb命令一样)? 最佳答案 这可能有帮助:fromdjango.core.management.baseimportBaseCommandfromdjango.dbimportconnectionsclassCommand(BaseCommand):defhandle(self,database="default",*args,**options):cursor=connections[database].curs

mysql - 为什么 InnoDB 表的大小比预期的大得多?

我正在尝试找出不同存储引擎的存储要求。我有这张table:CREATETABLE`mytest`(`num1`int(10)unsignedNOTNULL,KEY`key1`(`num1`))ENGINE=InnoDBDEFAULTCHARSET=latin1;当我插入一些值然后运行​​showtablestatus;时,我得到以下信息:+----------------+--------+---------+------------+---------+----------------+-------------+------------------+--------------+-

Mysql 搜索 - InnoDB 和事务与 MyISAM 的全文搜索

我目前正在研究为我的php项目提供高级搜索的最佳方法。我已将范围缩小为使用FULLTEXT搜索而不是使用LIKE在表格行中查找匹配的字符串。然而,要做到这一点,我似乎需要牺牲使用InnoDB引擎,这将使我失去事务和表关系的ACIDity。是否真的值得使用MYISAMmysql引擎,或者是否有更好的方法来提供搜索功能。如有任何指点,我们将不胜感激! 最佳答案 这真的取决于应用程序...将MyISAM用于任何需要引用完整性的东西都是立竿见影的失败。同时,它的文本搜索也不是那么高效。基本上,有两种方法。如果您发现不需要真正的参照完整性,请

mysql - 如何让innodb成为默认引擎

我试图将Innodb作为我的默认引擎,我在my.cnf文件中更改了它。我在my.cnf文件中设置了default-storage-engine=InnoDB并重新启动了mysql,但它仍然没有使用它。即使在重新启动服务器后,它仍然显示默认引擎为MyISAM。showengines+------------+--------+-|发动机|支持|+------------+--------+-|数据库|是的||MRG_MYISAM|是的||黑洞|是的||格式|是的||内存|是的||联合|否||存档|是的||MyISAM|默认|+------------+--------+-如何将其更改为I