Я начал писать приложение, которое я хочу использовать для быстрого поиска по моим данным.Ускорение моего простого приложения Redis .NET
Я начал использовать клиента из ServiceStack.Redis. (Понял через NuGet) Вокруг этого я написал небольшую тестовую программу, чтобы вставить 20k компании записей данных и теперь я запрашивая эту вещь, используя следующий код:
using (var companies = redisClient.As<Company>())
{
var companiesFound = companies.GetAll().Where(x => x.CompanyName.Contains(searchString));
dgvOutput.DataSource = companiesFound.ToList<Company>();
}
Компания класса я использую внешний вид например:
public class Company
{
public long Id { get; set; }
public string CompanyName { get; set; }
public string CompanyAddress { get; set; }
public string CompanyCity { get; set; }
}
Все это хорошо работает, но я не могу сказать, что это быстро. Может ли кто-нибудь помочь мне в том, что делать, чтобы эта работа работала так быстро, как может быть? Индексы? Разные типы запросов? Лучше не использовать LINQ?
Вы пытались напрямую запросить Databse? Если да, у вас такие же проблемы с производительностью? Когда запрос занимает много времени, он не имеет никакого отношения к вашему коду ... – Dannydust
Да, я уверен, что это имеет какое-то отношение к моему коду. Консольное приложение работает намного быстрее. Поэтому мой вопрос заключается в том, как написать более разумный запрос, чтобы выполнить некоторые действия Redis в объектах моей компании. – Tys
Хм, для меня кажется, что вы получаете все записи компании заранее, а затем фильтруете ее: "companies.GetAll(). Где (..." Вам нужен звонок GetAll()? – Dannydust