假设我有两台服务器同时使用InnoDB在MySQL 5.5数据库上启动事务。 两个事务都做同样的事情:读取一行,然后根据其内容更新行。 我想确保这两个交易一个接一个地运行。 也就是说, 第二个事务不应该被允许在第一个事务完成之前读取该行。 理想情况下,这意味着第二个事务中的SELECT语句将等到第一个事务被提交,然后返回更新后的值。 这可能吗? 如果没有,是否有一个比MySQL更适合这个任务的数据库? 如果是这样,一个相关的问题:假设第一台服务器中间事务崩溃,所以没有收到任何COMMIT消息。 如何设置一个超时后交易将自动回滚,以便第二个交易不会永久延迟? ( 更新 :我把这个作为一个单独的问题 。
我想检查MySQL上的InnoDB的缓冲池命中率,但是当我查询数据库时,命中率似乎从结果中消失了: 使用查询: SHOW ENGINE INNODB STATUS\G ———————- BUFFER POOL AND MEMORY ———————- Total memory allocated 169799966; in additional pool allocated 6386688 Dictionary memory allocated 1122462 Buffer pool size 8192 Free buffers 1 Database pages 8163 Old database pages 2993 Modified db pages 0 Pending reads 0 Pending writes: LRU 0, flush list 0, single page […]
如果包含InnoDB日志文件的分区(innodb_log_group_home_dir)变成完整的,只读的或不可写入的,MySQL会发生什么? 如果这确实发生了,那么需要什么恢复过程呢? 我可以用奴隶帮助主人恢复吗?
我每隔几个小时都会看到这个popup窗口。 Trying to get property of non-object — Incorrect key file for table '/tmp/#sql_ad2_2.MYI'; try to repair it 我在所有表上运行mysqlcheck,但我仍然得到它。 还有什么我可以做的吗?
我已经使用MyISAM已经有好几年了,并且非常了解如何优化它,但是最近我刚刚开始使用InnoDB来处理一些表格,并且对这个表格不太了解。 什么是一些通用的技巧来帮助提高这些InnoDB表的性能(它们是从MyISAM转换而来的,具有从100k到2M行的任何地方,而大多数将不使用事务)。
INNODB自动创build一个外键字段的索引。 有没有一个存储引擎,允许我禁用? 我在xtradb上search并没有给我正面的结果。 也许,在Mariadb / Drizzle中是可能的? 有任何想法吗?
我有一个系统,用户经常向我的服务器提交工作。 一次有1500个活动,每分钟提交大约6000个工作单位。 我一直在使用一个大表来总结工作,然后当一个解决scheme运行时,数据库清除旧的工作,以保持大小的可pipe理性。 我的目标是将表格分成两部分:工作台和15分钟的日志。 工作计数器表将对每个工作提交(主键是worker_id,solution_id)运行UPDATE,每次提交工作时将第三列递增1。 所有的更新命令将使用worker_id和solution_id作为WHERE子句,所以它将始终是主键对。 日志表将存储3列:worker_id(INT),submit_time(时间戳),有效(ENUM('Y','N'))。 每一分钟,表格都会有一个查询,删除超过15分钟的信息。 我目前的计划是使用InnoDB作为计数器表格,并使用MEMORY表格作为日志。 对于每张桌子的目的,这些是引擎的正确select吗? 时间戳日志并不重要,所以如果表由于重新启动而丢失,那就不成问题了。
Ubuntu 10.04.2附带的MySQL是5.1.41,由InnoDB 1.0.5发布。 但由于某些原因,Ubuntu发布了InnoDB 1.0。 我可以安装InnoDB 1.0.5(或更新?)
我在MySQL 5.5.15版本上得到这个断言失败。 以下是MySQL服务器错误: 110927 21:56:51 InnoDB: Assertion failure in thread 1126107456 in file ibuf0ibuf.c line 4185 InnoDB: Failing assertion: page_get_n_recs(page) > 1 InnoDB: We intentionally generate a memory trap. InnoDB: about forcing recovery. 110927 21:56:51 – mysqld got signal 6 ; key_buffer_size=536870912 read_buffer_size=4194304 max_used_connections=446 max_threads=2500 thread_count=341 connection_count=341 110927 21:56:54 mysqld_safe Number of processes running now: […]
我正在尝试使用“percona-xtrabackup-2.0.0”实现MyIsam表的热备份并获取以下错误? 由于所有的表是MyIsam我怀疑我使用正确的包? Backup : ./innobackupex –user="root" –password=*** –defaults-file="<path>/my.cnf" –ibbackup="<path>/percona-xtrabackup-2.0.0/bin/xtrabackup" <path>/backup/ innobackupex: fatal error: no 'mysqld' group in MySQL options innobackupex: fatal error: OR no 'datadir' option in group 'mysqld' in MySQL options apply-log : ./innobackupex-1.5.1 –apply-log –defaults-file=<path>/backup/2012-06-02_09-59-30/backup-my.cnf –ibbackup=<path>/percona-xtrabackup-2.0.0/bin/xtrabackup <path>/backup/2012-06-02_09-59-30/