Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.02.13;
Скачать: CL | DM;

Вниз

как строится индекс?   Найти похожие ветки 

 
mem   (2010-11-23 11:39) [0]

Всем привет.
Нужен быстрый поиск в данных.
Сначала я записываю в файл сами данные, затем начинаю строить индексное дерево. Все хранится в одном файле. Так вот, при постройке индексного дерева, каждый узел/лист в конкретный момент времени ссылается на неконечное число эл-тов, поэтому я не могу знать его размер, соответственно, не знаю, где лежат следующие за ним узлы. Можно(наверное и нужно) хранить указатель на массив указателей на данные, соответствующие данному узлу/листу индекса.
 Только опять же, на момент постройки дерева я не могу знать его размер, потому и не могу знать, куда записывать массивы указателей. Да и сами массивы непостоянны в размере. Подскажите, как это делается.


 
Anatoly Podgoretsky ©   (2010-11-23 11:45) [1]

> mem  (23.11.2010 11:39:00)  [0]

Вообще то записывать указатели в файл бессмысленно.


 
12 ©   (2010-11-23 11:47) [2]

как в MSSQL - хапать место под данные заранее
любая книжка по организации индексов этой БД должна просвятить


> каждый узел/лист в конкретный момент времени ссылается на
> неконечное число эл-тов

как это?!

и
http://www.google.ru/webhp?rls=ig#rls=ig&hl=ru&source=hp&biw=1280&bih=785&q=%D1%81%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5+%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D1%8C%D1%8F&aq=f&aqi=g1&aql=&oq=&gs_rfai=&fp=6b80d38ad031c95


 
mem   (2010-11-23 11:52) [3]


> Anatoly Podgoretsky ©   (23.11.10 11:45) [1]
>
> > mem  (23.11.2010 11:39:00)  [0]
>
> Вообще то записывать указатели в файл бессмысленно.

в смысле, указатель на данные в файле.


> > каждый узел/лист в конкретный момент времени ссылается
> на
> > неконечное число эл-тов
>
> как это?!

пока строится дерево.


> как в MSSQL - хапать место под данные заранее

а если не хватит? Т.е. начал я записывать дерево после данных, пропустил х байт,  начинаю там записывать массивы ссылок на данные, а дерево разрослось до х+1 байт - мне, что, двигать массивы или дерево разбивать на кусочки? То же самое с массивами ссылок.

ссылка=указатель или как там назвать число, указывающее на место в файле, где данные лежат.


 
Anatoly Podgoretsky ©   (2010-11-23 11:57) [4]

> mem  (23.11.2010 11:52:03)  [3]

Смещение от начала.


 
12 ©   (2010-11-23 12:00) [5]


>  пропустил х байт,  начинаю там записывать массивы ссылок
> на данные, а дерево разрослось до х+1 байт - мне, что, двигать
> массивы

двигать массивы.
Массовый сдвиг будет все же быстрым боле-менее

т.е. как место закончилось, хапаем еще, ну пусть, 10% от уже занятого места.


 
mem   (2010-11-23 12:11) [6]


>  Anatoly Podgoretsky ©   (23.11.10 11:57) [4]
>
> > mem  (23.11.2010 11:52:03)  [3]
>
> Смещение от начала.

да, действительно.


> 12 ©   (23.11.10 12:00) [5]

спасибо, попробую.



Страницы: 1 вся ветка

Текущий архив: 2011.02.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
15-1288472674
Дмитрий Тимохов
2010-10-31 01:04
2011.02.13
Мейнстрим интернет разработки


2-1290612582
Денис2
2010-11-24 18:29
2011.02.13
Серийный номер монитора


15-1288865997
Den
2010-11-04 13:19
2011.02.13
PageControl


2-1290171238
Alex_C
2010-11-19 15:53
2011.02.13
Сохранить в одном файле несколько файлов


15-1289169116
NailMan
2010-11-08 01:31
2011.02.13
Летающие тряпочки