|
|
|
| Вот меня мучает один вопрос. Допустим у нас есть какая то таблица с данными и в ней есть первичный ключ уникальный. Посредством этого ключа обеспечивается быстрый поиск за счет применения всяких там крутых алгоритмов поиска, хеширования и т.д. и т.п. Но все же это поиск (!) допустим в другой таблице у нас записи с этими самыми ключами из другой таблицы: 1, 4, 5, 6, 7, ... И чтобы узнать полную информацию нужно выбирать сначала все эти ключи из второй таблицы а потом в первой поочередно искать записи с ключами 1, 4, 5, 6, 7, ... В результате куча, хоть и быстрых, но запросов. Куда было бы проще заменить все эти 1, 4, 5, 6, 7 указателями на ту область памяти где хранятся данные в первой таблице. Ведь теоретически это возможно. Почему же этого нету? Или я отстал от жизни и не подозреваю об их существовании? :) | |
|
|
|
|
|
|
|
для: Евгений Петров
(04.01.2007 в 20:45)
| | >В результате куча, хоть и быстрых, но запросов.
Иначе нужно будет знать точный адрес, а значит и внутреннее (бинарное) устройство таблицы - в результате SQL не был бы переносим, а был бы уделом одной СУБД. Для выбора сразу нескольких ключей обычно используется запрос IN
SELECT * FROM tbl WHERE id IN (1, 4, 5, 6, 7)
|
| |
|
|
|
|
|
|
|
для: cheops
(04.01.2007 в 21:26)
| | Хм, жалко кончено. Но прогресс как грится не стоит на месте. В недалеком будующем думаю обязательно что нибудь придумают... :) | |
|
|
|