![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
марина |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 2.8.2006 Репутация: нет Всего: нет |
Есть одна таблица с 4-мя полями( в sqlite)
[code=sql] номер контакта(пусть A) | свойство контакта(пусть B) | атрибут свойства© | значение атрибута(D) [code=sql] Некоторые пояснения: У обьекта есть номер(A), много свойств(около 15)(B), у свойст есть много атрибутов(около 5)©, а у каждого атрибута есть значение(D). Сделаны индексы на номер контакта и свойство контакта. Первое решение было: 1) вытащить все различные номера контакта (дешевая операция) 2) потом для каждого номера вытаскивать: 2.1) те поля у которых нет атрибутов и только одно значение(их несколько 4-5) -- это постоянные поля и есть у каждого обьекта 2.2) затем вытаскиваем список всех полей (кроме предыдущих -- это легко определяется) -- это не постоянные поля и их может не быть, те у каждого обьекта они свои 2.3) начинаем для каждого из вытащенных полей - вытаскивать одним запросом значения и атрибуты Но все это довольно медленно и занимает несколько минут уже на 500 номеров контакта. Больше всего времени уходит на 2-ой пункт. Подскажите как можно улучшить производительность. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 2 Всего: 42 |
1. а какой собственно запрос нужен?
Для разных запросов разные способы ускорения. Если тебе не нужны агрегационные запросы, то, как вариант, - нормализовать базу Разнеси все в 3 разные таблицы таблица контактов. таблица свойств таблица аттрибутов -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |