草庐IT

innodb_lru_scan_depth

全部标签

php - NOW() for DATETIME InnoDB Transaction guaranteed?

在单个InnoDB事务的2+个查询中使用NOW()是否保证插入的日期时间值在数据库中是准确的?换句话说,即使您在使用它的单个事务中有超过20个查询,NOW()是否总是相同,还是会改变? 最佳答案 Apparentlyitisnotguaranteed跨事务但可以从语句更改为语句。有一个解决方法可以使用asshownhere:BEGIN;SELECT@now:=NOW();INSERT...VALUES(...,@now,...);INSERT...VALUES(...,@now,...);UPDATE...@now...;COMMI

mysql - InnoDB 优化 - "use transactions when doing updates"- 为什么?

我正在阅读thispost在MySQL性能博客上。在应用程序调整下它说:Firstmakesureyou’reusingtransactionswhendoingupdates我目前只在同时有多个插入或更新的地方使用事务。即不止一张table。因此,我是否应该更改每个UPDATE以将其更改为事务?有什么区别:preparesqlbindparamscommit和:begintransactionpreparesqlbindparamsexecutestatementcommittransaction就数据库级别发生的事情而言,这使得一个比另一个更快? 最佳答

mysql - 处理 ON INSERT 触发器时如何锁定 innodb 表?

我有两个innodb表:文章id|title|sum_votes------------------------------1|art1|52|art2|83|art3|35投票id|article_id|vote------------------------------1|1|12|1|23|1|24|2|105|2|-26|3|107|3|158|3|129|3|-2当一条新记录插入到votes表中时,我想更新articles表中的sum_votes字段,方法是计算所有投票。问题如果SUM()计算本身很重(votes表有700K条记录),哪种方式更有效。1。创建触发器CREATE

mysql - 如何为仅包含 ibdata 和 *.ibd 文件的 MySQL InnoDB 表重新创建 FRM 文件?

这个问题与我在stackoverflow上看到的相关InnoDB修复问题略有不同。假设我已经使用innodb_file_per_table=1在我的MySQL5.1数据库中恢复了以下内容:db/tablename.ibdinnodb/ibdata1innodb/ib_logfile0innodb/ib_logfile1我丢失了db/tablename.frm文件。我可以启动数据库服务器,但InnoDB提示:11072313:26:33InnoDB:Error:table'db/tablename'InnoDB:inInnoDBdatadictionaryhastablespaceid5

mysql - 自增组合键 InnoDB

我想为InnoDBMySQL表创建类似MyISAM的行为。我想要一个复合主键:主键(id1,id2)其中id1根据id2的值自动递增。使用InnoDB实现此目的的最佳方法是什么?+----------+-------------+--------------+|id1|id2|other_column|+----------+-------------+--------------+|1|1|Foo||1|2|Bar||1|3|Bam||2|1|Baz||2|2|Zam||3|1|Zoo|+----------+-------------+--------------+

mysql - InnoDB 行大小在表增长时呈指数变化?

我有一个包含三列(int、mediumint、int)的巨大InnoDB表。innodb_file_per_table设置开启,前两列只有一个PRIMARYKEY表架构是:CREATETABLE`big_table`(`user_id`int(10)unsignedNOTNULL,`another_id`mediumint(8)unsignedNOTNULL,`timestamp`int(10)unsignedNOTNULL,PRIMARYKEY(`user_id`,`another_id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_u

mysql - 如何修复 InnoDB 损坏,从创建中锁定表名(errno : -1) on AWS RDS?

提示:不要在MySQLWorkbench中为“标准TCP/IPoverSSH”连接运行ALTER语句。最好进入服务器并从那里运行ALTER。这样,如果您失去与服务器的连接,ALTER仍应完成其工作。我正在尝试在我昨天尝试创建的数据库中创建一个新表。问题是,我的互联网一直在微辍学中失去连接。我相信这些故障之一是在我创建表时发生的,现在当我尝试创建一个具有完全相同的名称的表时:CREATETABLEIFNOTEXISTS`adstudio`.`data_feed_param`(`id`BIGINTUNSIGNEDNOTNULLAUTO_INCREMENT,PRIMARYKEY(`id`))

mysql:如何释放空间(innodb)

我有一个配置了innoDB存储引擎的mysql数据库。我删除了数据库(dropdatabase)但是磁盘空间还没有被释放。在/var/lib/mysql有一些名为ib_logfile0的“大”文件,ib_logfile1和ibdata1最后一个真的很大。我认为这些文件实际上是原始数据库。我怎么知道我是否可以删除它们。或者更好的问题是如何删除一个数据库,以便回收磁盘空间。澄清我想删除整个数据库并释放磁盘空间。我不想执行任何恢复。提前致谢。 最佳答案 不幸的是,一旦分配了空间,就无法缩小这些文件。然而,当添加新数据时,MySQL将重新使

mysql - NULL 对 MySQL 表有什么影响? (InnoDB)

最近,我一直在思考是否值得拥有一个可能包含大量NULL列的表,或者拥有更多没有NULL列的表是否更好。我听说NULL没有存储在InnoDB上,所以我想知道一堆带有大量NULL的行是否有任何缺点或问题。我一直听说常见的NULL不好,但我从未真正了解为什么。顺便说一句,如果这很重要的话,外键上的那些将是NULL。第二个疑问,当我在具有大量NULL的列上使用INNERJOIN时,是否存在任何性能问题?比如,如果我有4个外键,我打算进行4个INNERJOIN,但很可能只有1个不是NULL,这会影响性能吗?谢谢 最佳答案 参见:Doesmys

sql - 从 mysql innodb 中删除大量数据

我需要删除生产数据库中的大量数据,该数据库的大小约为100GB。如果可能的话,我想尽量减少停机时间。我删除的选择标准很可能是DELETE*FROMPOSTINGWHEREUSER.ID=5ANDUPDATED_AT删除它的最佳方法是什么?建立索引?编写一个顺序脚本,通过分页一次删除1000行? 最佳答案 可以尝试使用mysqldoc中提到的方法:选择不删除的行到一个与原表结构相同的空表中:INSERTINTOt_copySELECT*FROMtWHERE...;使用RENAMETABLE以原子方式将原始表移开并将副本重命名为原始名称