Articles of innodb

很less或没有停机时间修改非常大的MySQL表的列

我需要定期更改mysql 5.1中的表,主要是添加列。 用alter table命令很简单。 但是我的表格现在有多达4000万行,而且它们的增长速度很快…所以这些alter table命令需要几个小时。 在几个月内,他们会花上几天我猜测。 由于我使用亚马逊RDS,我不能有奴隶服务器玩,然后促进主。 所以我的问题是,如果有一种方法可以在最短的停机时间内完成这个任务? 我不介意操作需要几个小时甚至几天,如果用户仍然可以使用数据库当然…他们至less可以阅读而列正在添加? 如果我的应用程序尝试写入会发生什么? 插入或更新? 如果它立即失败,实际上不是那么糟糕,如果它挂起,并导致数据库服务器的问题,这是一个大问题.. 这必须是一个相当常见的扩展问题,每个人都需要添加列..什么是通常做生产数据库? 奴隶 – >主迁移? 更新 – 我忘了提及我正在使用innodb存储引擎

更简单的方法将InnoDB的所有表转换为MyISAM

以前我用这个: USE dbname; ALTER TABLE tablename ENGINE=MYISAM; 我正在寻找更简单的方式来转换数据库中的所有表,而不是逐个写每个表名

如何提高MySQL的INSERT和UPDATE性能?

这个问题也可以在StackOverflow上被问到,但我会先在这里尝试… 我们的数据库中的INSERT和UPDATE语句的性能似乎正在下降,导致我们的Web应用程序性能不佳。 表是InnoDB,应用程序使用事务。 我可以做些简单的调整来加快速度吗? 我想我们可能会看到一些locking问题,我怎么知道?

最好的Mysqlcaching设置为8GB内存专用MySQL服务器只使用Innodb(5GB数据库)

我是一个非常大的noob当涉及到设置MySQL的性能。 老实说,我并不担心微调会挤出MySQL的每一个performance,但我知道最重要的事情是提供一些最好的结果是正确设置caching/caching。 我试图通过只使用innodb作为存储引擎来保持简单。 而且我有一个专用的服务器的MySQL。 它有8GB的RAM,我应该如何分配,以最大限度地提高性能? 我希望能够将我的整个数据库放到内存中以获得最佳性能。 数据库大概是5GB。 这可能吗? 我应该分配多less内存给查询caching? innodb缓冲池多less钱? 电脑的其余部分(即非MySQL相关的进程)多less钱? 等等。 由于我没有使用MyISAM,我真的不需要把正确的密钥caching中的大量内存?

你如何select一个MySQL数据库引擎

特别是,如何在MyISAM和InnoDB之间进行select,既不缺less必需的function(例如,您不需要外键)。 它总是归结为尝试和衡量? 或者,有没有关于读取与写入的数量和频率以及其他措施的好的经验法则? 桌子的大小是否对典型的select有影响?

InnoDB和MyISAM有什么区别?

我正在使用MySQL作为我的当前Web项目的数据库。 我是MySQL的新手。 请向我解释一下InnoDB和MyISAM的区别。

MySQL InnoDB – innodb_file_per_table缺点

默认情况下,MySQL InnoDB将所有数据库的所有表存储在一个全局文件中。 您可以通过在configuration中设置innodb_file_per_table来更改此设置,然后为每个表创build一个数据文件。 我想知道为什么innodb_file_per_table没有默认启用。 使用它有缺点吗?

未知/不受支持的存储引擎:InnoDB | MySQL Ubuntu

我最近从之前的LTS Ubuntu升级到Precise,现在mysql拒绝启动。 当我试图启动它时,它抱怨以下内容: ╰$ sudo service mysql restart stop: Unknown instance: start: Job failed to start 这显示在“/var/log/mysql/error.log”中: 120415 23:01:09 [Note] Plugin 'InnoDB' is disabled. 120415 23:01:09 [Note] Plugin 'FEDERATED' is disabled. 120415 23:01:09 [ERROR] Unknown/unsupported storage engine: InnoDB 120415 23:01:09 [ERROR] Aborting 120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete 我已经检查了所有mysql目录的权限,以确保它拥有所有权,并且我也重命名了previou ib_logs,以便它可以重新制作它们。 我只是在看到谷歌的结果2个小时后,没有得到这个问题的地方。

InnoDB:错误:日志文件./ib_logfile0大小不同

在我将一个数据库转换为InnoDB引擎后,我在/etc/mysql/my.cnf中添加了以下几行。 innodb_buffer_pool_size = 2560M innodb_log_file_size = 256M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 2 innodb_thread_concurrency = 16 innodb_flush_method = O_DIRECT 但它会提出“错误2013(HY000)在第2行:失去连接到MySQL服务器在查询过程中”错误重新启动mysqld。 而mysql错误日志显示如下 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in the .cnf file 0 268435456 bytes! 100118 20:52:52 [ERROR] Plugin 'InnoDB' init function returned error. 100118 20:52:52 [ERROR] […]