我有一些生产服务器,其ibdata文件的大小每天都在增加。
它已经消耗了 290GB 的空间。
服务器中的表多为InnoDB,读写请求量大。
日志文件大小也在增加。表中有大量数据。
我怎样才能控制两者的增长规模?
我没有使用innodb_file_per_table.
我已经向表中添加了用于搜索结果的索引。我按 ASC 或 DESC 顺序显示结果。那么该列是否应该有索引?我在那个表上还有 2 个索引。对该列建立或不建立索引对性能有何影响?
我正在寻找估算表格大小的最佳方法,因为我研究了很多博客和论坛,但找不到任何准确的答案
例如,我们有一个带有 InnoDB 引擎的表 City,假设在未来(未来 1 年)它将有 100 万条记录,那么该表在此期间的估计数据大小和索引大小是多少。
mysql> desc City;
+-------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| CountryCode | char(3) | NO | MUL | | |
| District | char(20) | NO | | | |
| Population | …Run Code Online (Sandbox Code Playgroud) 我有 170GB 的InnoDB索引和数据。
我必须重新调整 innodb_buffer_pool 大小以获得更好的性能。InnoDB 表(索引+数据)的最大表大小为 28GB。
那么innodb_buffer_pool的最佳大小应该是多少。
更新
我们要将我们的本地数据库迁移到 ec2,因此将根据 innodb 的当前统计数据设置 RAM,这就是为什么我需要缓冲池的大小,以便我们可以在那里拥有可用的 RAM。
文件每表已启用。
我正在使用 Linux 机器。
基于行和基于语句的复制之间的实际区别是什么。我实际上是在考虑复制对从站的影响。
如果我使用基于行的复制,那么对从站的影响是什么,如果我使用基于语句的复制,那么影响是什么?
还请考虑以下参数:
replicate-ignore-db and replicate-do-db
Run Code Online (Sandbox Code Playgroud)
谢谢....!
我对数据库管理很陌生。
我在设置mysql主从复制时遇到了很多问题。
我还面临常规的 mysql 复制故障排除问题。
任何人都可以帮助理解我应该如何处理所有这些吗?
我有一个包含多个表的数据库。
我想从表中删除一些记录,说记录数超过 20K 或 50K。
所有的表都是 InnoDB。并且file_per_table是关闭的。
当我从多个表中删除记录时,表中会出现碎片。
有没有办法消除碎片。?
4月17日更新
mysql> select TABLE_NAME, TABLE_SCHEMA, Data_free from information_schema.TABLES where TABLE_SCHEMA NOT IN ('information_schema', 'mysql') and Data_Free >0;
+-----------------+--------------+-----------+
| TABLE_NAME | TABLE_SCHEMA | Data_free |
+-----------------+--------------+-----------+
| City | world_innodb | 5242880 |
| City_Copy | world_innodb | 5242880 |
| Country | world_innodb | 5242880 |
| CountryLanguage | world_innodb | 5242880 |
| a | world_innodb | 5242880 |
| t1 | world_innodb | 5242880 …Run Code Online (Sandbox Code Playgroud) 如果有人可以帮助我了解 MySQL 中查询所有数据库以获取“MyISAM”引擎的正确命令,我将不胜感激。我需要将所有数据库和表从 MyISAM 转换为 InnoDB。
我在 Slave 上收到错误消息:
无法在表 mydatabasename.atable 上执行 Write_rows 事件;密钥“PRIMARY”的重复条目“174465”,错误代码:1062;处理程序错误 HA_ERR_FOUND_DUPP_KEY; 事件的主日志 mysql-bin.000004, end_log_pos 60121977
由于我直接从 master 获取更新,所以为什么会发生这种情况。
我们如何以有效的方式处理这个问题,以便从站上没有数据丢失。我不想再次设置整个复制以保持数据完整性。
谢谢..!
有什么办法可以弄清楚所有索引都缓存到 RAM 中了吗?我想知道各个索引的页面相关统计信息(命中数和未命中数)
mysql ×9
innodb ×5
replication ×3
index ×2
mongodb ×1
myisam ×1
mysql-5 ×1
mysql-5.5 ×1
order-by ×1
performance ×1