grey109
Новичок
Странная проблема с MySQL
Есть две таблицы:
create table cd (
cd_id integer not null primary key,
artist_name text not null,
album_name text,
year integer default null,
length_cd text default null,
genre_id integer default null,
links text default null,
comments text default null
);
create table tracks (
cd_id integer not null,
track_no integer not null,
title_track text not null,
length_track text default null,
PRIMARY KEY (cd_id, track_no)
);
Я хочу организовать по ним поиск. Для этого я даю такой запрос:
SELECT cd.cd_id, cd.artist_name, cd.album_name, tracks.cd_id, tracks.track_no, tracks.title_track, tracks.length_track FROM cd, tracks WHERE (tracks.title_track Like '%май%' OR cd.artist_name Like '%май%' OR cd.album_name Like '%май%') AND cd.cd_id=tracks.cd_id ORDER BY tracks.title_track
И тут начинается самое интересное:
1. дикие тормоза - этот запрос выполняется около секунды на 700 Дюроне, хотя были и другие запросы превосходящие по сложности кострукии и поразмерам этот в 3-4 раза и они выполнялись 3-8 сотых секунды.
2. если заменить ORDER на GROUP, то запрос выполняется как и положено, т.е. 2-4 сотых секунды. Но вся проблема в том что мне нужно именно ORDER.
3. под 98 Виндой все pаботает отлично, не считая тоpмозов. Под 2000 Виндой, на той же самой машине, с теме же веpсиями apacha, php и mysql, получаем ошибку:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\www\search.php on line 175
175 стpока это:
while (list ($cd_id, $artist_name, $album_name, $cd_id, $track_no, $title_track, $length_track) = mysql_fetch_row($res))
Какого??? Повтоpюсь, что все одинаковое, pазница только в ОС.
У кого-нибудь есть какие-нибудь мысли в чем может быть причина тормозов и не работы запросо под 2000 Виндой?
PS: php - 4.2.2, mysql - 3.23.49
Есть две таблицы:
create table cd (
cd_id integer not null primary key,
artist_name text not null,
album_name text,
year integer default null,
length_cd text default null,
genre_id integer default null,
links text default null,
comments text default null
);
create table tracks (
cd_id integer not null,
track_no integer not null,
title_track text not null,
length_track text default null,
PRIMARY KEY (cd_id, track_no)
);
Я хочу организовать по ним поиск. Для этого я даю такой запрос:
SELECT cd.cd_id, cd.artist_name, cd.album_name, tracks.cd_id, tracks.track_no, tracks.title_track, tracks.length_track FROM cd, tracks WHERE (tracks.title_track Like '%май%' OR cd.artist_name Like '%май%' OR cd.album_name Like '%май%') AND cd.cd_id=tracks.cd_id ORDER BY tracks.title_track
И тут начинается самое интересное:
1. дикие тормоза - этот запрос выполняется около секунды на 700 Дюроне, хотя были и другие запросы превосходящие по сложности кострукии и поразмерам этот в 3-4 раза и они выполнялись 3-8 сотых секунды.
2. если заменить ORDER на GROUP, то запрос выполняется как и положено, т.е. 2-4 сотых секунды. Но вся проблема в том что мне нужно именно ORDER.
3. под 98 Виндой все pаботает отлично, не считая тоpмозов. Под 2000 Виндой, на той же самой машине, с теме же веpсиями apacha, php и mysql, получаем ошибку:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\www\search.php on line 175
175 стpока это:
while (list ($cd_id, $artist_name, $album_name, $cd_id, $track_no, $title_track, $length_track) = mysql_fetch_row($res))
Какого??? Повтоpюсь, что все одинаковое, pазница только в ОС.
У кого-нибудь есть какие-нибудь мысли в чем может быть причина тормозов и не работы запросо под 2000 Виндой?
PS: php - 4.2.2, mysql - 3.23.49