我已经使用MyISAM已经有好几年了,并且非常了解如何优化它,但是最近我刚刚开始使用InnoDB来处理一些表格,并且对这个表格不太了解。 什么是一些通用的技巧来帮助提高这些InnoDB表的性能(它们是从MyISAM转换而来的,具有从100k到2M行的任何地方,而大多数将不使用事务)。
我在过去几周面临着一个问题。 我正在一个Windows服务器,这是一个专用服务器的MySQL有32GB的RAM和使用MySQL 5.1.42版本。 我有两个数据库'abc'和'abc_bak',我的主要目的是在'abc'数据库和'abc_bak'数据库中保留两天的数据表,并从那里数据必须被移动到另一个数据库,并确保所有这一过程应在1小时内完成,但到目前为止需要超过5小时。 我也按照相同的程序为其他表格,他们也有相同数量的logging,并在不到15分钟完成备份过程。 我经常运行一个脚本,将logging从'abc'数据库移动到'abc_bak'数据库,大部分时间我看到这个备份延迟。 我正在使用INSERT … SELECT将logging从abc复制到abc_bak,然后删除abc数据库中的logging。 在使用这个时,我的GUI会受到其性能的影响。 我也非常确定这些表格是不是长期优化。 我已经尝试了多种方法来移动logging一段时间的工作,并再次面临延迟备份。 我每天收到超过300万条logging。 我所指的表是相当多的索引和使用MyISAM引擎。 对于下面的3个解决scheme,我还有一个两难的问题,不知道他们能帮我多less。1)Mysql分区2)将引擎types改为Innodb 3)设置主从复制 目前我已将此表更改为Innodb引擎types。 请帮助我find一个更好的解决scheme,并请分享您的build议。 谢谢,Varun
我有一个有InnoDB和MyISAM表的MySQL服务器。 InnoDB表空间在4 GB以下是相当小的。 MyISAM总共大约250GB,其中50GB用于索引。 我们的服务器有32 GB的RAM,但通常只使用〜8GB。 我们的key_buffer_size只有2GB。 但是我们的关键caching命中率是〜95%。 我觉得很难相信.. 这是我们的关键统计数据: | Key_blocks_not_flushed | 1868 | | Key_blocks_unused | 109806 | | Key_blocks_used | 1714736 | | Key_read_requests | 19224818713 | | Key_reads | 60742294 | | Key_write_requests | 1607946768 | | Key_writes | 64788819 | key_cache_block_size默认为1024。 我们有52 GB的索引数据和2 GB的密钥caching足以达到95%的命中率。 那可能吗? 另一方面,数据集是200GB,并且由于MyISAM使用OS(Centos)caching,我期望它使用更多的内存来caching访问的myisam数据。 但在这个阶段,我看到key_buffer被完全使用了,我们的innodb的缓冲池大小是4GB,并且也被完全使用,总计达到了6GB。 这意味着数据仅使用1 GB进行caching? 我的问题是如何检查所有可用内存的使用位置? […]
我有一个网站,有一个体面大的数据库,3GB的大小,几十万张表的纪录。 目前它在MyISAM上是100%的,而且我觉得服务器由于过多的locking而比预期的要慢,所以我想尝试去InnoDB,看看是否让事情变得更好。 但是,我需要直接在生产中这样做,因为显然没有负载,这并没有什么区别。 不过,我有点担心,因为InnoDB实际上有可能会变慢,所以问题是: 如果我把所有表转换成InnoDB,结果比以前更糟,我可以返回MyISAM而不会丢失任何东西吗? 你能想到我可能遇到的任何问题吗? (例如,我知道InnoDB将所有数据存储在一个只有更大的大文件中,这是否会成为问题?) 非常感谢你 丹尼尔
我试图只在一个较旧的4.1 MySQL MyISAM表上放下一个500MB的全文索引。 当我这样做,CPU挂钩100%,并坐在那里超过10分钟。 这不可能是正常的,对吧? 我放弃了,只是重新启动MySQL和索引仍然存在。 错误日志中没有消息。 任何其他方法,我可以尝试? 没关系,花费了30分钟,最后在可用磁盘空间中将数据库大小加倍。 我猜因为某种原因,甚至下降也很慢(我知道build筑可以,但是下降?)
我正在优化MySQL服务器的configuration,只运行溴。 这不是特定于应用程序,只是注意完整性。 我试图确定是否从MyISAM切换到InnoDB是一个更好的select,在less数写主导表。 这些表占据了服务器的大部分写入,但也是所有查询的最高百分比。 我不想制作InnoDB的所有表,尽pipe这次可以节省我的时间。 我更喜欢MyISAM。 InnoDB有它自己的优势,这对于这些写出大量的具体表格是有意义的。 我知道如何查看MySQL实例的读/写统计信息,并运行所有推荐的分析脚本。 我清楚地想知道,我如何看待特定表上的读/写统计信息? 如果有相关经验的人有推荐的数据可供参考。 我将不胜感激。 更新:我在Bromine论坛发布了关于这个问题,他们让我知道哪些表是写重。 这并不是真的回答这个问题,无论如何我都想知道。 只是为了完整性,这是我的表/引擎 Name Engine QRTZ_BLOB_TRIGGERS MyISAM QRTZ_CALENDARS MyISAM QRTZ_CRON_TRIGGERS MyISAM QRTZ_FIRED_TRIGGERS MyISAM QRTZ_JOB_DETAILS MyISAM QRTZ_JOB_LISTENERS MyISAM QRTZ_LOCKS MyISAM QRTZ_PAUSED_TRIGGER_GRPS MyISAM QRTZ_SCHEDULER_STATE MyISAM QRTZ_SIMPLE_TRIGGERS MyISAM QRTZ_TRIGGERS MyISAM QRTZ_TRIGGER_LISTENERS MyISAM activities InnoDB browsers MyISAM browsers_nodes MyISAM combinations MyISAM combinations_requirements MyISAM commands InnoDB configs MyISAM echelons […]
我试图导入一个相当大的文件(5Gb,〜130Mlogging)到MyISAM表(mysql 5.1.61)。 它已经运行了5个多小时,没有显示任何错误,我可以在进程列表中看到“LOAD DATA INFILE …”。 但是,当我运行SHOW TABLE STATUS时,正在更新的表的“Data_length”仍然是0.我想知道这是否正常 – 如果没有,我应该放弃导入来查看错误。 由SHOW TABLE STATUS显示的“Update_time”是最新的并且迅速改变。 当mysqlimport运行成功时,“Data_length”保持为零是否正常?
我最近通过在枚举字段中添加一个新值来更改一个巨大的MyISAM表(8000万条)。 在我这样做之后,我检查了用于复制主服务器的2个从服务器上的表的健康状况。 我注意到,在一台从服务器上MYI文件要小得多。 我已经用myisamchk和REPAIR修复了表,但索引的大小没有改变。 请在下面看到在这3台服务器上运行myisamchk -dvv返回的结果为“Keyfile length”: Master Server Auto increment key: 1 Last value: 80098340 Data records: 79375556 Deleted blocks: 0 Datafile parts: 79375556 Deleted data: 0 Datafile pointer (bytes): 6 Keyfile pointer (bytes): 6 Datafile length: 9635014668 **Keyfile length: 18945252352** Max datafile length: 281474976710654 Max keyfile length: 288230376151710719 Recordlength: 1110 Slave Server 1 […]
从我的表中删除旧数据会提高MySQL查询性能? 当我的查询使用索引? 当我的查询不使用索引? 当我使用InnoDB? 当我使用MyISAM?
今天,我把我们的生产服务器唤醒了。 不开心。 我们将问题定位于每日cronjob,即从生产数据库到远程服务器的完整mysqldump。 SQL命令很简单 mysqldump -u myuser -pmypassword mydatabase >outfile.sql 但是,login到mysqlpipe理控制台,并发出一个Show processlist; 命令显示如下: statistics select clickthrough_rate, i1.token, length(title) as len, p.id as pid, i1.category_id, title, c.name 155250 root localhost mydatauser Query 32164 Locked insert into srch_logs (log_id, api_session_id, query, category_filter, clickthrough_item_id) values 155251 root localhost mydatauser Query 32163 Locked insert into srch_logs (log_id, api_session_id, query, […]