我有一个RDS实例此表:将MySQL表移动到AWS DynamoDB - 如何设置它?
+--------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| match_id | bigint(10) unsigned | NO | MUL | NULL | |
| prop_type_id | bigint(10) unsigned | NO | | NULL | |
| title | varchar(45) | NO | MUL | NULL | |
| odds | double | YES | | NULL | |
| status | tinyint(4) unsigned | YES | | 1 | |
| selection_id | bigint(15) | YES | MUL | NULL | |
| market_id | bigint(15) | YES | MUL | NULL | |
| date_time | datetime | NO | | NULL | |
| available | int(11) | NO | | NULL | |
| source | tinyint(4) | YES | | NULL | |
+--------------+---------------------+------+-----+---------+----------------+
我们发现指标最佳的设置是把它们设置在match_id,prop_type_id,selection_id和market_id。
此时DB大约是1.5 GB的大小,我们每秒100个500查询之间随时随地根据此表,并很快这会高得多。其中约75%是选择,其他则是更新和删除。数据非常不稳定。这会导致MyISAM挂起,InnoDB造成大量死锁。
我已经尝试过的SimpleDB和除了服用约18小时国防部我们的Rails代码与它的工作,现在一个简单的选择需要1和6秒,它并不总是一致的之间的任何地方。我不得不大量使用memcache,但这是一个主要的缺点 - 我们希望数据在数据库中以及屏幕上每8秒钟最多更新一次。
想动这对DynamoDB其希望可以执行高流量的情况要好得多。
现在的挑战是,我们需要搜索基于以下几点: - ID(这可以是任何东西,只要他们是独一无二的,但我们查询时并不总是使用它) - match_id - prop_type_id - 标题 - selection_id - market_id - 状态(0..2)
一般我们查询或者在match_id和prop_type_id,或match_id,prop_type_id,market_id和selection_id。基于标题的查询很少见,但无法避免。地位相同。
有没有我们可以模拟这种用于DynamoDB的方法吗?
我知道他们只支持5除了指标,他们也需要在任何时候都知道的ID。我怎么知道这些ID而没有先查看数据,我不知道,但也许我做错了所有的事情?
谢谢!
编辑以确保问题(这是因为这是一个问题)以粗体字标记,因此可以很容易地看到,所以我的帖子不会因为不成问题而被删除。它实际上是。谢谢:) – 2013-04-29 14:50:12