как оптимизировать запрос

da_andy

Guest
как оптимизировать запрос

Посоветуйте, пожалуйста, как ускорить следующий запрос:
$query="select album_id,album,artist1,artist1_id from mp3list WHERE album_id!=\"\" Order by RAND() LIMIT 0,16";
При том, что база большая (37мб) запрос обрабатывается 4 секунды =(
 

Фанат

oncle terrible
Команда форума
во-первых, индекс по album_id
во-вторых, попробуй сделать выборку сначала count(*), потом выбери случайное число от нуля до count, а потом limit число, 16
я бы так сделал

вообще, здесь была большая тема на эту тему. поищи
 

DIS

Guest
Re: как оптимизировать запрос

Автор оригинала: da_andy
Посоветуйте, пожалуйста, как ускорить следующий запрос:
$query="select album_id,album,artist1,artist1_id from mp3list WHERE album_id!=\"\" Order by RAND() LIMIT 0,16";
При том, что база большая (37мб) запрос обрабатывается 4 секунды =(
что за бред?
как вообще так может получиться что поле "album_id" пустой строкой?
на кой его сравнивать с пустой строкой?

короче.. если уж это текст:

SELECT траляля FROM трулюлю WHERE len(album_id) order by rand() limit 16 (без нуля)

если не текст:

where album_id not NULL

и не нужно никаких лишних заморочек.
 
Сверху