Гость
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / СУБД для хранения графов/матрицы связности / 5 сообщений из 5, страница 1 из 1
17.02.2015, 13:57
    #38881725
Spinifex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СУБД для хранения графов/матрицы связности
Коллеги,
Ищу СУБД для хранения графа. Граф не направленный, не взвешенный, размерность графа не более 100 000 узлов.
По факту нужно хранить матрицу 100 000 на 100 000, где каждый бит указывает на наличие связи. Такую СУБД в принципе не долго и самому написать, но есть проблема, что пользоваться ей должны из нескольких приложений, написанных на разных языках. Так что какое-то готовое решение - предпочтительнее.


Сейчас храним данные в SQL сервер, для каждой связи - запись в таблице. Не устраивает скорость проверки наличия связи и скорость добавления новой связи. Очевидно, что в случае с матрицей можно добиться наилучшей производительности.
Есть ли что-то похожее?
...
Рейтинг: 0 / 0
17.02.2015, 15:13
    #38881834
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СУБД для хранения графов/матрицы связности
SpinifexСейчас храним данные в SQL сервер, для каждой связи - запись в таблице. Не устраивает скорость проверки наличия связи и скорость добавления новой связи.
DDL таблицы покажете? Индекс на поля, хранящие вершины, есть?
...
Рейтинг: 0 / 0
17.02.2015, 16:03
    #38881953
Spinifex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СУБД для хранения графов/матрицы связности
Dimitry SibiryakovSpinifexСейчас храним данные в SQL сервер, для каждой связи - запись в таблице. Не устраивает скорость проверки наличия связи и скорость добавления новой связи.
DDL таблицы покажете? Индекс на поля, хранящие вершины, есть?

Как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
[Relation](
	[ID1] [int] NOT NULL,
	[ID2] [int] NOT NULL,
 CONSTRAINT [PK__Relation] PRIMARY KEY CLUSTERED 
(
	[ID1] ASC,
	[ID2] ASC
)
WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

ALTER TABLE [Relation]  WITH CHECK ADD  CONSTRAINT [CK__Relation__ID1__ID2] CHECK  (([ID1]<=[ID2]))

CREATE NONCLUSTERED INDEX [IX_Relation__ID2__ID1] ON [Relation] 
(
	[ID2] ASC
)
INCLUDE ( [ID1]) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
...
Рейтинг: 0 / 0
18.02.2015, 14:53
    #38882937
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СУБД для хранения графов/матрицы связности
SpinifexНе устраивает скорость проверки наличия связи и скорость добавления новой связи.
А каким запросом проверяете наличие связи и каким - добавляете новую? Покажете их планы и статистику?
...
Рейтинг: 0 / 0
19.02.2015, 17:35
    #38884283
lookat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СУБД для хранения графов/матрицы связности
Spinifex,

Neo4j ?
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / СУБД для хранения графов/матрицы связности / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]