Articles of innodb

MySQL InnoDB ext3块大小

我正在使用InnoDB寻找MySQL 5.6的ext3文件系统块大小的build议。 在VMware ESXi 5中运行CentOS 5.4 VM,在NetApp FibreChannel LUN(具有4k块大小)上运行VMFS 5数据存储。 使用O_DIRECT,innodb_flush_log_at_trx_commit = 2,14G缓冲池,db做OLTP,偶尔会有大量的查询处理大量的数据。 有些桌子是几个GB或更多,其他很小。 表和ibdata文件在另一个文件系统上,binlog和ib_logfiles,因此它们可以具有不同的块大小。 我知道InnoDB使用16k块大小,这是不是用户可configuration的,所以我想知道是否值得它设置ext3块大小匹配,而不是4k的默认值。 谢谢!

我怎么知道mysql服务器中是否有innodb表?

我有一个MySQL服务器,我想禁用它的innodb支持。 据说我可以把我的内存使用量切断到100MB。 我很肯定,但不是100%肯定,服务器中没有innodb表。 有一个简单的方法可以100%确定服务器中没有innodb表,所以我可以安全地禁用innodb支持

添加skip-innodb之后,mysql不会启动

我正在尝试设置这些值: #skip-bdb #skip-locking #skip-innodb 当我把它们添加到/etc/mysql/my.cnf ,即使我打开了,他们之后,我做的服务重新启动mysql无法启动,并没有打印错误信息。 sudo service mysql restart [ ok ] Stopping MySQL database server: mysqld. [FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! 以前我确信我没有InnoDB表,并且所有types的文件都被删除了。 我试图寻找错误文件,但我找不到它: /var/log/mysql.err是一个0字节的文件 /var/log/mysql文件夹中没有文件 rsyslog在过去被inetutils-syslogd改变了,这可能会改变日志文件,这可能是我没有看到任何错误日志的原因,我坚持如何看待或前进。

在mysql-data文件夹中巨大#sql-xxxx_xxxx.ibd文件

在我们的一个mysql数据库上,磁盘的大小比实际的数据(~5GB)要大得多(28GB),所以我仔细看了看mysql-data中包含的文件 我看到以下文件 12K #sql-5254_eaa3.frm 8.9G #sql-5254_eaa3.ibd 12K #sql-537f_8d5b.frm 11G #sql-537f_8d5b.ibd 即使在mysql重新启动,服务器重新启动等之后,以上依然存在 任何想法,如果这些临时表,幸存下来,如崩溃? 在生产系统上安全地移除它们还是需要以不同的方式处理它们? 顺便说一句,我们有file_per_table设置为true。 提前感谢任何提示!

短信交易处理系统的高层次devise

我一直负责devise一个系统来处理短信交易。 事务以来自服务提供者的HTTP请求的forms出现。 在处理交易的过程中,有问题的系统需要联系其他几个不受我控制的系统,并做一些处理。 我可以select几乎所有的东西,从实现的语言到将要使用的数据库。 我希望这个系统能够很好地扩展,并且至less可能是高度可用的。 基于以上,我的问题是: 1)我应该select什么语言? 我是全职的C ++程序员,但对于这个系统来说,C ++似乎并不是一个好的select。 我很了解Java,Python和PHP,并尝试了许多其他语言。 我正朝着Java的方向发展。 你会selectJava吗,还是用其他的东西(根据需求)? 2)我认为要很好地扩展这个系统需要asynchronous处理的东西,并且应该有一个添加处理节点的能力。 为此,Java消息系统看起来是一个正确的select,例如Apache ActiveMQ的实现。 这是一个好主意吗? 3)显然这个东西需要一个sorting数据库。 有越来越多的NoSQL运动 – 我应该如何看待这种方式(例如Apache Cassandra看起来非常有希望),还是只使用真正的PostgreSQL或MySQL与InnoDB? 因为在我看来,这个东西需要ACID。

mysql INNODB插入非常慢

数据库的模式如下。 CREATE TABLE `items` ( `id` mediumint( 8 ) unsigned NOT NULL AUTO_INCREMENT , `name` varchar( 45 ) NOT NULL , `main_type` tinyint( 4 ) NOT NULL , `rarity` tinyint( 4 ) NOT NULL , `stack_size` smallint( 6 ) NOT NULL , `sub_type` tinyint( 4 ) NOT NULL , `cost` mediumint( 8 ) unsigned NOT […]

如何禁用除MyISAM以外的所有MariaDB存储引擎?

(在my.cnf )我试过了default-storage-engine = myisam , skip-innodb ,并且注释了每一个innodb特性,但是没有一个能起作用

InnoDB性能不稳定

我正在用一个非常简单的InnoDB表(名为Test)进行一些testing,结果如下: Id int(10) unsigned NOT NULL AUTO_INCREMENT UserId int(10) NOT NULL Body varchar(512) COLLATE utf8_unicode_ci NOT NULL CreatedAt datetime NOT NULL UserId上的一个附加索引: KEY Idx_Test_UserId (UserId) USING BTREE 当我尝试执行此查询… INSERT INTO Comments (UserId,Body,CreatedAt) VALUES (1,'This is a test',NOW()) …有时候我会在几毫秒内完成操作,但有些时候我需要几秒钟的时间。 我有一个简单的SELECT语句相同的问题: SELECT Body FROM Comments WHERE UserId=1 我是唯一一个在这个特定的表上做testing的人,我真的不明白我有这样的执行时间差异。 最后一点,当我用MyISAM表进行相同的testing时,我没有任何问题。

MySql Fusion-io服务器上的高CPU

我刚刚阅读了这个旧的问答,其中有一些与我们类似的设置非常详细的信息,不幸的是我们的问题(现在)不是复制。 MySQL复制性能 我们有一个新的master数据库服务器(服务器版本: 5.5.27 -log MySQL社区服务器),在裸机服务器上有以下规格: 2个英特尔E5-2620-v2 64Gb内存 2个Fusion-io 600Gb卡(Raid 1),用于MySql 1个SSD为Centos 6.5 1Gbpsnetworking HyperThreading在服务器上没有被禁用,因为对这是否对大内存系统有帮助有不同的看法,但我们并不反对尝试它。 我们目前正在复制到在SSD集群上虚拟化的3个从站。 我们正在复制到4,但这对于SSD集群来说似乎太多了,我们有一段时间的滞后。 所有的表都是InnoDB,master DB和slave Writer都在3.5K到2.5K之间,而master上的读取大约是7.5k到10k qps 。 主数据库的设置如下所示: long-query-time=10 slow-query-log max_connections=500 max_tmp_tables=1024 key_buffer = 1024M max_allowed_packet = 32M net_read_timeout=180 net_write_timeout=180 table_cache = 512 thread_cache = 32 thread_concurrency = 4 query_cache_type = 0 query_cache_size = 0M innodb_file_per_table innodb_file_format=barracuda innodb_buffer_pool_size=49152M innodb_buffer_pool_instances=2 innodb_read_io_threads=16 […]

调整mysql的查询caching

我正在调整我的VPS [360MB安装程序]上的MySQL查询caching。 当我开始时,它被设置为32MB,我得到了一个不平凡的数量的qcache_lowmem_prunes。 我添加了一个cronjob来定期运行FLUSH QUERY CACHE,这有助于,但还不够。 我一直在逐渐扩大它,但即使在80MB(我暂时从php-cgi中拿走了一些内存),我仍然看到了lowmem李子。 OTOH,我只有大约50%的命中率[即Qcache_hits大约是Qcache_hits + Com_select的一半]。 我强烈怀疑我的许多查询是一次性查询,因此不应该被caching。 我想识别它们,并用SQL_NO_CACHE标记它们。 任何build议,一个简单的方法来做到这一点? 也有可能我的一些查询没有被caching,因为表格已经改变了,尽pipe我不认为基于粗略的心理模型,情况就是这样。 至less,对于大多数查询来说结果应该是一致的; 我使用的是InnoDB,所以我的理解是随机的UPDATE不一定会使所有的SELECT失效。 它是否正确?