我在我的反應原生應用程序中設置了類似下面的代碼來爲性能測試設置模擬/測試數據。提高react-native中領域查詢的速度?
realm.write(() => {
const max = 120;
for(let x=1; x<=max; x++)
{
realm.create('Product', {productId:x});
}
for(let x=1; x<=max; x++)
{
for(let y=x; y<=max; y++)
{
for(let z=y; z<=max; z++)
{
realm.create('Compatibility', {
result: 'Y '+x+' '+y+' '+z,
products: [
realm.objects('Product').filtered('productId = '+x)[0],
realm.objects('Product').filtered('productId = '+y)[0],
realm.objects('Product').filtered('productId = '+z)[0]
]
});
}
}
}
});
class Product {}
Product.schema = {
name: 'Product',
primaryKey:'productId',
properties: {
productId:'int'
}
};
class Compatibility {}
Compatibility.schema = {
name: 'Compatibility',
properties: {
result: {type: 'string'},
products: {type: 'list',objectType:'Product'},
}
};
這意味着Products對象有120條記錄,Compatibility對象有170條記錄。
當我運行查詢realm.objects('Compatibility').filtered(products.productId = 3 AND products.productId = 25 AND products.productId = 97)
時,大約需要15秒鐘才能在我的舊HTC Desire 510和我的華爲Nova Plus上運行。這太慢了。
有沒有提高查詢速度的方法?例如,你可以索引列或什麼?
我更新了我的問題,以清楚表明我只對查詢性能感興趣。對於您的productQueryHelper,我可以查詢可變數量的productId。有時我在查詢僅1的productId,其他時間我就可以查詢在10周的productId以上。我想productQueryHelper不靈活,以支持可變數量的過濾參數? – John
@John在這種情況下,我不認爲它是。對不起,它沒有幫助。 – bennygenel