Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.02.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.004 c
15-1288998079
Дмитрий Тимохов
2010-11-06 02:01
2011.02.13
Когда-то надо остановиться - тема Дней Рождений


15-1288767682
Alx2
2010-11-03 10:01
2011.02.13
Сбор подписей против "налога на болванки"


15-1288467409
Novi4ok
2010-10-30 23:36
2011.02.13
Дельфи или Си?


2-1290449177
mem
2010-11-22 21:06
2011.02.13
считать байты в структуру


2-1289661379
mfender
2010-11-13 18:16
2011.02.13
Наследники





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский