草庐IT

innodb-multiple-tablespaces

全部标签

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以原子方式将原始表移开并将副本重命名为原始名称

sql - MySQL Order by multiple column combined (not order by field1 asc, field2 asc)

这似乎是一个典型的问题,但它是不同的。我有一个带有id和3个时间戳字段的表(简单来说)。最初所有3个字段都是空的,并且它们被值填充。行的例子是:idtime1time2time3112596256611259643563null2null1259621231null31259625889null12596445114null1259621231null5nullnull12596445116null1259621231null71259625889nullnull我需要的是获取按最近时间戳排序的ID列表(忽略时间1、时间2或时间3)。按time1desc、time2desc、time3

javascript - PHP : insert multiple check boxes values into one MySQL column

我想编写一个简单的PHP函数来插入值为10和20的复选框。现在,问题是:我应该将所有值插入MySQL表的单个列中,还是应该使用单独的表?我的主要目标是将多个复选框的值插入到MySQL中,然后更新它们。如果我选中了7个复选框,一段时间后我想从7更新到5,它将如何从表列中删除值?请帮助我提供一些简单的PHP示例以及我应该添加什么类型的MySQL字段,因为我想插入应该为数字的复选框值和其他字段中的复选框标签。这是我的HTMLGamesYouLike:FootballBasketBallPoolRugbyTennisCricketTableTennisHockey