我有简单的主/从配置。我的生产箱上都有8GB的RAM。 我只使用Master for Writes而只使用Slave作为Reads。但是在这个周末我跑了一个工作,在master上插入数据,这个数据应该被复制到slave上。由于这种情况,我的奴隶在主人身后花了将近15-16小时的时间,当我从奴隶那里读到它时,它给我的报告造成了很大的麻烦,奴隶没有更新信息。MySQL复制简单的主/从复制
对于这一点,我有几个疑问:
是否有正当理由的,为什么要使用奴隶读取和不掌握(我主人后非常5分钟写。)和一些工作是从奴隶读取的时间表。
我有100GB的表和每天我有百万记录插入同一张桌子上。所有的选择和插入都发生在这张桌子上。我选择了从这张表格中将数据逐年分离到多个表格的方式,以便优化这张表格,还有其他方式可以让我更快地优化和执行此表格。
请让我知道,如果我什么都不清楚。
下面是表的设计:
+----------------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------------+------+-----+---------------------+----------------+
| test_id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| prime_id | int(11) unsigned | NO | MUL | 0 | |
| prime2_id | int(11) unsigned | NO | MUL | 0 | |
| timestamp | datetime | NO | MUL | 0000-00-00 00:00:00 | |
| test_time | int(11) | NO | | 0 | |
| status | int(11) | NO | | 0 | |
| component | int(11) unsigned | NO | | 0 | |
| c_component | int(11) unsigned | NO | | 0 | |
| C2_component | int(11) unsigned | NO | | 0 | |
| C3_component | int(11) unsigned | NO | | 0 | |
| rt_component | int(11) unsigned | NO | | 0 | |
| code | int(11) unsigned | NO | | 0 | |
| ip | int(11) unsigned | YES | | 0 | |
| step_id | int(11) unsigned | YES | | NULL | |
+----------------+------------------+------+-----+---------------------+----------------+
This is the index information of the table:
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+-----------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| tests | 0 | PRIMARY | 1 | test_id | A | 629448388 | NULL | NULL | | BTREE | |
| tests | 1 | ixf_prime_id | 1 | prime_id | A | 14 | NULL | NULL | | BTREE | |
| tests | 1 | ixf_prime2_id | 1 | prime2_id | A | 14 | NULL | NULL | | BTREE | |
| tests | 1 | ix_timestamp | 1 | timestamp | A | 157362097 | NULL | NULL | | BTREE | |
| tests | 1 | ix_prime_id_timestamp | 1 | prime_id | A | 14 | NULL | NULL | | BTREE | |
| tests | 1 | ix_prime_id_timestamp | 2 | timestamp | A | 629448388 | NULL | NULL | | BTREE | |
谢谢戴夫。但我不能要求我的奴隶选择等待......因为我需要为每天和每天的每个小时生成报告......所以我从奴隶读取的信息。我认为检查参数“Second Behind Master”的想法很好,因此可以在主控上插入插入内容,这样就不会出现如此大的差异。 – 2011-05-19 09:20:25
我还有一个关于主/从配置的查询,如果我从主站读取和写入,会发生什么。 – 2011-05-19 09:21:53
对不起,在运行读取查询之前,我的意思不是奴隶们必须等待,我的意思是我们的系统在奴隶落后的情况下直接在主人处开启读取查询。在主设备上读取和写入是完全正确的(这只是一个单一的服务器体系结构,然后......)通过我们的设置,您可以获得两全其美的体验。如果从站是最新的,则在从站上执行读操作,否则它们在主站上执行。希望这能说明问题? – 2011-05-19 09:30:04