Şema içermeyen JSON verilerini içeren 150 mn kayıt içeren bir rethinkdb tablom var. JSON'da iç içe geçmiş bir alanı araştırıyorum, örneğin 'Kapı No.' Aşağıdaki JSON alanı. Ben 1mn kayıtlarını içeren bir tablo için aynı sorguyu ran Çok sayıda kayıt için sorgu performansını geliştirin rethinkdb
{ 'Name' : 'XYZ', 'Age' : 22, 'Address' : { 'Gate No.' : 7, 'Society' : 'ABC' } }
, sorgu ancak 150 mn kayıtlarıyla, sorgu hiç dönmez, 680 ms döndü. Web konsolundan, bir süre çalışır ve daha sonra bir hata verir:
Query terminated by an unknown cause
. Java uygulamamdan, sorgu sonsuza kadar devam ediyor gibi görünüyor.
Her biri ~ 37 mn belgeleri tutan, ancak bu durumu iyileştirecek gibi görünmeyen 4 sunucuyla çalışmayı denedim. Sorguyu nasıl çalıştırabilirim?
Not: JSON verilerim tamamen şema içermez, bu nedenle verilerin indekslenmesi geçerli bir seçenek değildir. Söylediğin ekstra bilgilere dayalı
Hey Kapil, yaptığınız kesin sorgu ve tablolarda oluşturduğunuz dizinler hakkında daha fazla bilgi verebilir misiniz? – dalanmiller
Çalıştığım sorgu r.db ('dbName') .tablo ('tableName'). Filter (r.row ('Address') ('Gate No.') .qq (7)), var Tam olarak iade edilmesi gereken bir kayıt. Tablo 150 mn kayıtları (4 kırıkları, her biri ~ 37 mn kayıt) içerir. Dizini oluşturmak için sorgu, web konsolu zaman aşımına rağmen bir dizin kullanmıyorum. Ayrıca, JSON dosyası şema-azdır, bu yüzden bir indeks işe yaramaz mı? –
filtresi hiç bir dizin kullanmıyor. GetAll'i Adress.'Gate No. 'adresindeki bir endeksle kullanmanız gerekir. Bkz. Https://www.rethinkdb.com/api/javascript/get_all/ – jishi