один ко многим: как сделать быстрее?
От: Аноним  
Дата: 18.01.11 12:20
Оценка:
Есть данные поиск по которым организован с помощью файловой системы,
стало интересно, а будет ли быстрее если использовать базу данных.

Структура такая ключ(имя файла), в файле одна или несколько
структур типа

struct Data {
  float x;
  float y;
  float z;
};


сделал сначала в предположении что в каждом файле одна структура,
тогда запрос структуры с помощью ключа происходит практически мгновенно,
но вот обобщить это на случай нескольких "Data" не получается.

Т.е.
Table
key STRING, X FLOAT, Y FLOAT, Z FLOAT
select x,y,z from Table where key='a'
все прекрасно, а в случае когда Data несколько:
Table1
key STRING, key_id INTEGER
Table2
id INTEGER, X FLOAT, Y FLOAT, Z FLOAT, key_id INTEGER

но в этом случае время поиск по запросу
select x,y,z from Table2 where key_id in (select key_id from table1 where key='a')
на много порядков превосходит первый вариант,

можно ли как-то это ускорить (база данных sqlite, в будущем возможно mysql)?

приходит в голову только использование blob для данных
Re: один ко многим: как сделать быстрее?
От: wellwell Австралия https://www.softperfect.com
Дата: 18.01.11 12:51
Оценка:
" Аноним 802 " <0@users.rsdn.ru> wrote in message news:4121068@news.rsdn.ru...
> Есть данные поиск по которым организован с помощью файловой системы,
> стало интересно, а будет ли быстрее если использовать базу данных.
> можно ли как-то это ускорить (база данных sqlite, в будущем возможно mysql)?
> приходит в голову только использование blob для данных

SELECT x,y,z FROM Table2
INNER JOIN Table1
ON Table1.key_id = Table2.id
WHERE Table1.key = 'a'

Разумеется по key_id и id должен быть построен индекс.
Posted via RSDN NNTP Server 2.1 beta
Re: один ко многим: как сделать быстрее?
От: Angler Россия  
Дата: 18.01.11 14:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть данные поиск по которым организован с помощью файловой системы,

А>стало интересно, а будет ли быстрее если использовать базу данных.

А о каких обьёмах идет речь?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.