Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Самый шустрый сервер [D7, IB6.x]


Страницы:   1 2 3

REA ©   (2004-11-16 12:32:00) 

Есть необходимость работать с данными большого объема. Таблица (допустим) одна, 100 полей FLOAT, первичного ключа (допустим) нет.
Требуется запись в таблицу со скоростью 1 запись/сек. и как можно более быстрое чтение. Объем может достигать 2Гб, но проверить не могу т.к. вставка медленная - придется долго генерировать.
Какой сервер из семейства IB (Firebird, Yaffi...) можете посоветовать для такой задачи?


Соловьев   (2004-11-16 16:47:00) [21]


> create table user_rights(
> user_id ...,
> privilege_id ...
> );

Эта таблица? ПК Вы сами привели в запросе

> delete from user_rights wherer user_id = :uid and privilege_id
> = :pid


Reindeer Moss Eater   (2004-11-16 16:42:00) [22]

В моей таблице нет физического PK.
И логического PK то же нет.
Потому что мне не надо уникально идентифицировать запись.

Тем не менее в таблице смысла - хоть отбавляй.


Соловьев   (2004-11-16 16:40:00) [23]


> Не надо путать логические сущности

Логически ПК должен быть. Потому как смысла в данных не будет
Физически да, может и не быть.


Reindeer Moss Eater   (2004-11-16 16:34:00) [24]

Не надо путать логические сущности и физические объекты.
PK есть не всегда.


Соловьев   (2004-11-16 16:31:00) [25]


> А PK это "волшебство", работающее без индекса, и вставку
> не замедляет.
> Так что ли?

Замедляет конечно. Просто я так понял спор разгорелся из-за того, что ПК может и не существовать(я так понимал, что имелось ввиду - не существовать вообще). Как оказалось такого быть не могет. ПК всегда есть :)


Reindeer Moss Eater   (2004-11-16 16:27:00) [26]

А PK это "волшебство", работающее без индекса, и вставку не замедляет.
Так что ли?


Соловьев   (2004-11-16 16:26:00) [27]


> 2. Скорость обеспечивается и обычным индексом.

Что влечет за собой замедление при вставке...


Reindeer Moss Eater   (2004-11-16 16:25:00) [28]

1. Уникальность не нужна (будет сто одинаковых записей, но стократного увеличения привилегий не будет )

2. Скорость обеспечивается и обычным индексом.

PK здесь нафик не нужен.


Danilka   (2004-11-16 16:16:00) [29]

[24] Reindeer Moss Eater ©   (16.11.04 16:13)
решает. во-первых скорость доступа в запросе: wherer user_id = :uid and privilege_id = :pid
во-вторых, обеспечивает уникальность. :))


Johnmen   (2004-11-16 16:16:00) [30]

А что дает/решает ПК, напр., в таблице-справочнике ?


Reindeer Moss Eater   (2004-11-16 16:13:00) [31]

По смыслу может быть это и PK.
Но объект БД "primary key" в этом случае не нужен.
Он ничего нам не дает и ничего не решает.


Johnmen   (2004-11-16 16:12:00) [32]

>Reindeer Moss Eater ©   (16.11.04 15:59) [17]

Здесь нет одинаковых записей (по смыслу).
И ПК есть (опять же по смыслу).


Соловьев   (2004-11-16 16:09:00) [33]


> wherer user_id = :uid and privilege_id = :pid

Ну так вот и есть ПК - виртуальный правда :)


Danilka   (2004-11-16 16:08:00) [34]

брр, не две записи, а составной ПК по двум полям


Danilka   (2004-11-16 16:08:00) [35]

[17] Reindeer Moss Eater ©   (16.11.04 15:59)
Дык, здесь в качестве ПК будет две записи: "юзер" и "привелегия", кроме всего прочего, на уровне сервера будет обеспечен контроль - не будет записей с одинаковым набором юзер и привелегия


Reindeer Moss Eater   (2004-11-16 16:07:00) [36]

Что бы забрать привилегию, админ напишет запрос
delete from user_rights wherer user_id = :uid and privilege_id = :pid


Соловьев   (2004-11-16 16:04:00) [37]


> Системе не надо знать в какой конкретной записи содержится
> привилегия.

Но админу то надо! Чтобы забрать привелегию.


Reindeer Moss Eater   (2004-11-16 15:59:00) [38]

Конечно есть.
Например простейшая таблица привилегий, которыми наделены пользователи:
create table user_rights(
user_id ...,
privilege_id ...
);

Систему интересует набор привилегий, которыми обладает юзер.
Системе не надо знать в какой конкретной записи содержится привилегия.


Danilka   (2004-11-16 15:54:00) [39]

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


Danilka   (2004-11-16 15:52:00) [40]

[14] Sergey13 ©   (16.11.04 15:38)
А нафига в БД неуникальные записи? :))

Есть какой-нибудь пример, когда ПК ненужен или (о-боже) вредит? Что-то я не могу предстравить..


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо