Главная страница
    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
2-1290604410
mem
2010-11-24 16:13
2011.02.13
дефрагментация файла


15-1281636818
Дмитрий Тимохов
2010-08-12 22:13
2011.02.13
Миграция на WIndows 7 + права администратора.


15-1288982856
polkin
2010-11-05 21:47
2011.02.13
pppoe на windows 2000


2-1288912217
Германн
2010-11-05 02:10
2011.02.13
Ещё раз о "подсказках"


2-1290501543
mem
2010-11-23 11:39
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский