我有一個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