Azure 查询可能存在的性能问题
Possible Performance issue with Azure query
我有这个代码:
IEnumerable<Users> allItems = await MobileService.GetTable<Users>().CreateQuery().ToEnumerableAsync();
foreach (var item in allItems) {
if (item.Email.Equals(emailEntry.Text)) {
emailIsValid = true;
}
}
它检索我的 azure table 中的所有项目,然后我检查在文本字段中输入的电子邮件是否有效(匹配 azure table 中的一个)。问题是,在我看来,我的 table 中可能有成千上万的用户登录,我不知道这种电子邮件验证方法在性能方面是否可行,如果不可行,那将是什么更好的方法吗?
构造查询以在服务器端完成大部分繁重的工作。应用过滤器以减少网络上的数据量。
像这样
var email = emailEntry.Text;
var query = await MobileService.GetTable<Users>()
.Where(item => item.Email == email)
.ToEnumerableAsync();
var emailIsValid = query.Any();
除非需要使用所有用户,否则无需全部获取。
我有这个代码:
IEnumerable<Users> allItems = await MobileService.GetTable<Users>().CreateQuery().ToEnumerableAsync();
foreach (var item in allItems) {
if (item.Email.Equals(emailEntry.Text)) {
emailIsValid = true;
}
}
它检索我的 azure table 中的所有项目,然后我检查在文本字段中输入的电子邮件是否有效(匹配 azure table 中的一个)。问题是,在我看来,我的 table 中可能有成千上万的用户登录,我不知道这种电子邮件验证方法在性能方面是否可行,如果不可行,那将是什么更好的方法吗?
构造查询以在服务器端完成大部分繁重的工作。应用过滤器以减少网络上的数据量。
像这样
var email = emailEntry.Text;
var query = await MobileService.GetTable<Users>()
.Where(item => item.Email == email)
.ToEnumerableAsync();
var emailIsValid = query.Any();
除非需要使用所有用户,否则无需全部获取。