[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как оптимизировать базу под запрос?
Владимир55
База вцелом имеет размер 1 Гб и должна хранить следующую информацию:

adr VARCHAR(100) 
text TEXT

При этом в ячейке TEXT каждой строки содержится порядка 10 Кб. инфы.

База должна быть оптимизирована под запрос вида
SELECT TEXT FROM articles WHERE adr = '$adr' 


Все значания adr уникальны.

Каким образом можно обспечить максимальное быстродействие выполнения этого запроса?

Достаточно проиндексировать поле adr ?

А может быть, лучше иметь не одну таблицу, а две - во вспомогательной дать только ТЕХТ, а в таблице articles дать adr и номер строки во вспомогательной таблице, содержащей текст (и выполнять поиск двумя запросами)?

Как будет работать быстрее?
Guest
Цитата (Владимир55 @ 14.10.2013 - 11:20)
Достаточно проиндексировать поле adr ?

В большинстве случаев да. Стоит поставить уникальный индекс(раз уж значения уникальны), за счет этого сама система уже будет подразумевать, что нужно выбрать одну строку.
T1grOK
Залогиниться забыл rolleyes.gif

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
GET
Владимир55
Также индекс по полю adr не обязательно делать по всем 100 символам...экономнее можно и по первым 10, например, зависит от степени уникальности.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Владимир55
Цитата (Guest @ 14.10.2013 - 07:47)
Стоит поставить уникальный индекс(раз уж значения уникальны), за счет этого сама система уже будет подразумевать, что нужно выбрать одну строку.

Каким образом это сделать, каким запросом?

(Я с этими индексами никак не могу разобраться, хотя прочел уже много статей!).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.