rethinkdb のデータベースに 580 万件のレコードを含むテーブルがあり、そのサンプルを以下に示します。
{
"release": {
"genres": {
"genre": "Electronic"
},
"identifiers": {
"identifier": [
{
"description": "A-Side",
"value": "MPO SK 032 A1 G PHRUPMASTERGENERAL T27 LONDON",
"type": "Matrix / Runout"
},
{
"description": "B-Side",
"value": "MPO SK 032 B1",
"type": "Matrix / Runout"
},
{
"description": "C-Side",
"value": "MPO SK 032 C1",
"type": "Matrix / Runout"
},
{
"description": "D-Side",
"value": "MPO SK 032 D1",
"type": "Matrix / Runout"
}
]
},
"status": "Accepted",
"videos": {
"video": [
{
"title": "The Persuader (Jesper Dahlbäck) - Östermalm",
"duration": 290,
"description": "The Persuader (Jesper Dahlbäck) - Östermalm",
"src": "http://www.youtube.com/watch?v=AHuQWcylaU4",
"embed": true
},
{
"title": "The Persuader - Vasastaden",
"duration": 380,
"description": "The Persuader - Vasastaden",
"src": "http://www.youtube.com/watch?v=5rA8CTKKEP4",
"embed": true
},
{
"title": "The Persuader-Stockholm-Sodermalm",
"duration": 335,
"description": "The Persuader-Stockholm-Sodermalm",
"src": "http://www.youtube.com/watch?v=QVdDhOnoR8k",
"embed": true
},
{
"title": "The Persuader - Norrmalm",
"duration": 289,
"description": "The Persuader - Norrmalm",
"src": "http://www.youtube.com/watch?v=hy47qgyJeG0",
"embed": true
}
]
},
"labels": {
"label": {
"catno": "SK032",
"name": "Svek"
}
},
"companies": {
"company": [
{
"id": 271046,
"catno": "",
"name": "The Globe Studios",
"entity_type_name": "Recorded At",
"resource_url": "http://api.discogs.com/labels/271046",
"entity_type": 23
},
{
"id": 56025,
"catno": "",
"name": "MPO",
"entity_type_name": "Pressed By",
"resource_url": "http://api.discogs.com/labels/56025",
"entity_type": 17
}
]
},
"styles": {
"style": "Deep House"
},
"formats": {
"format": {
"text": "",
"name": "Vinyl",
"qty": 2,
"descriptions": {
"description": [
"12\"",
"33 ⅓ RPM"
]
}
}
},
"country": "Sweden",
"id": 1,
"released": "1999-03-00",
"artists": {
"artist": {
"id": 1,
"anv": "",
"name": "Persuader, The",
"role": "",
"tracks": "",
"join": ""
}
},
"title": "Stockholm",
"master_id": 5427,
"tracklist": {
"track": [
{
"position": "A",
"duration": "4:45",
"title": "Östermalm"
},
{
"position": "B1",
"duration": "6:11",
"title": "Vasastaden"
},
{
"position": "B2",
"duration": "2:49",
"title": "Kungsholmen"
},
{
"position": "C1",
"duration": "5:38",
"title": "Södermalm"
},
{
"position": "C2",
"duration": "4:52",
"title": "Norrmalm"
},
{
"position": "D",
"duration": "5:16",
"title": "Gamla Stan"
}
]
},
"data_quality": "Complete and Correct",
"extraartists": {
"artist": {
"id": 239,
"anv": "",
"name": "Jesper Dahlbäck",
"role": "Music By [All Tracks By]",
"tracks": "",
"join": ""
}
},
"notes": "The song titles are the names of Stockholm's districts."
}}
アーティスト名が「Persuader, The」のリリース タイトルを取得しようとしています。
次のコマンドを使用しました。
r.db("discogs").table("releases").getField("release").filter(r.row("artists").getField("artist").getField("name").eq("Persuader, The")).getField("title")
時間がかかりすぎます。ただし、小規模なデータベースではすばやく動作します。どうすれば高速化できますか?