Вопрос по дизайну базы данных - PullRequest
1 голос
/ 14 августа 2011

Я работаю в компании по недвижимости, мы собираемся разработать новую версию нашего приложения для Windows с C#.

Вот краткий обзор текущих ситуаций:

МыПолучив 4 миллиона записей и увеличиваясь, мы используем SQL Server 2005 для хранения этих записей в одной таблице с 52 столбцами.Почти все конечные пользователи используют от 30 до 40 столбцов в каждом поиске.

Я знаю, что это не стандартный дизайн, но я перепробовал много сценариев, я разбил эти 52 столбца на другие таблицы и установил связь между темами, но при использовании одной таблицы производительность все еще выше(даже без первичного ключа!) Я добавил индекс, но не логично добавлять индекс ко всем столбцам.

У нас есть другие ограничения, пользовательское оборудование, многие из них все еще имеют Pentium II,

С другой стороны, у нас есть Google Desktop Search GDS.Я тестировал это приложение на их компьютере, производительность по-прежнему хорошая.

В чем разница между SQL сервером и GDS движком?

Можно ли использовать GDSкак движок для хранения моих данных?И как называется этот вид хранения?

Ответы [ 3 ]

2 голосов
/ 14 августа 2011

Можно ли использовать GDS как движок для хранения моих данных? и как называется этот вид хранения?

Да, их широко называют NoSQL , и существуют десятки различных "баз данных", которые специализируются на нереляционном хранении данных.

Сказав это, в общей схеме 4 миллиона записей - это даже не много, почти наверняка дизайн вашей базы данных здесь виноват. Очень мало случаев, когда дизайн одной таблицы является самым быстрым, такие механизмы, как SQL Server, очень хорошо работают с реляционными данными. Посмотрите на обсуждения, такие как , этот , и, возможно, узнайте немного больше о дизайне и оптимизации базы данных, прежде чем принимать какие-либо решения.

1 голос
/ 14 августа 2011

Это действительно зависит от того, как вы применяете свои индексы. Кроме того, у вас может быть один набор таблиц, который вы используете для своего приложения, и один набор, который вы используете для отчетов. Таким образом, вы можете повысить производительность отчетов и при этом сохранить правильные данные. Поэтому каждый раз, когда вы получаете обновление своей реляционной структуры данных, у вас появляется процесс, который берет эти данные и переносит их в базу данных, что ускоряет выполнение запросов.

0 голосов
/ 14 августа 2011

GDS и SQL не похожи. Тем не менее, SQL Server имеет (в качестве дополнительного компонента) функцию под названием Полнотекстовый поиск , которая может помочь достичь того, что вам нужно.

В общем, я думаю, что следующее может быть хорошим решением:

  • Нормализуйте вашу базу данных - если вы не добились лучшей производительности с нормализованной БД, то у вас наверняка не было правильных первичных и внешних ключей.
  • Используйте упомянутые FTS в текстовых полях, которые нужно искать
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...