Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чудеса с одинаковыми таблицами 
:(
    Опции темы
chaklun
Дата 13.9.2005, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



Привет всем.
у меня есть в базе 2 одинаковых по струкуре таблицы:

CREATE TABLE `price_at` (
`pr_id` bigint(20) NOT NULL default '0',
`pr_index` char(25) NOT NULL default '',
`pr_name` char(100) NOT NULL default '',
`pr_price_rozn` decimal(10,2) default NULL,
`pr_price_zak` decimal(10,2) default NULL,
`pr_main` float(10,2) default NULL,
`pr_near` float(10,2) default NULL,
`pr_far` float(10,2) default NULL,
`pr_analog` char(10) default NULL,
PRIMARY KEY (`pr_id`),
UNIQUE KEY `PK_id` (`pr_id`),
KEY `IX_index` (`pr_index`),
KEY `IX_price_analog` (`pr_analog`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

в каждой около 300 тысяч записей.
в одной таблице запрос типа WHERE pr_index LIKE '%abc%' выполняется быстро (5-7 секунд), а в другой 30-60 секунд. в чем может быть загвоздка? повторяю. структура таблиц, ключей, индексов идентичны!

Комп: AMD Athlon 64 3000+ / 512 Ram / OS WinXP
MySQL ver: 4.1.13a
PM MAIL   Вверх
Ignat
Дата 13.9.2005, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(chaklun @ 13.9.2005, 21:38)
структура таблиц, ключей, индексов идентичны!

Начнем с вопроса: А зачем одинаковые таблицы smile


--------------------
Теперь при чем :P
PM   Вверх
chaklun
Дата 13.9.2005, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



блин.
таблицы с разными именами, для каждого поставщика. если слить вкучу, то вообще поиск 2-5 минут идет
PM MAIL   Вверх
Ignat
Дата 13.9.2005, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(chaklun @ 13.9.2005, 21:58)
таблицы с разными именами, для каждого поставщика. если слить вкучу, то вообще поиск 2-5 минут идет

Даже если на поставщика индекс повесить? smile Не верю!

А вообще по вопросу - индексы по ходу полетели, восстановить надо.
Код

REPAIR TABLE `price_at`;

Если не помогает, то myisamchk.


--------------------
Теперь при чем :P
PM   Вверх
chaklun
Дата 13.9.2005, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



после REPAIR TABLE `price_at`заработало как часы. получается, мне надо делать эту команду каждый раз после всякого изменения данных в ней? странненько smile
PM MAIL   Вверх
Ignat
Дата 13.9.2005, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(chaklun @ 13.9.2005, 22:44)
после всякого изменения данных в ней

Нет, просто у тебя не были корректно обработаны блокировки в какой-то момент. Иногда случается.


--------------------
Теперь при чем :P
PM   Вверх
chaklun
Дата 13.9.2005, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



и у меня, и у заказчика одна и та-же картина наблюдается....
буду делать в конце каждого импорта эту команду...
PM MAIL   Вверх
chaklun
Дата 13.9.2005, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



пардон, пару слов о блокировках пожалуйста. что эт такое, и как делается?
PM MAIL   Вверх
chaklun
Дата 13.9.2005, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



странно. после REPAIR TABLE первый запрос выполняется долго (как и раньше). а последующие - быстро.

Это сообщение отредактировал(а) chaklun - 13.9.2005, 23:06
PM MAIL   Вверх
Akina
Дата 13.9.2005, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(chaklun @ 13.9.2005, 22:44)
получается, мне надо делать эту команду каждый раз после всякого изменения данных в ней?

Поиск в мануале MySQL по Repair Table и читание вокруг написанного (особено там, где про оптимизацию - типа "как MySQL делает то и это") даст пищу для подумать...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
chaklun
Дата 14.9.2005, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



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

моя программа при импорте базы поставщиков в таблицы тупо инсертит запись за записью. больше никаких манипуляций.

может быть не стоит ожидать чудес от мускуля при обьеме данных около 700 тысяч записей в сумме по 5м таблицам?

у меня 5 таблиц одинаковой структуры, отдельно для каждого поставщика.
в одной таблице 305 тыщ, во второй 298 тыщ. в 3,4,5 по 30 тыщ.

при чем поиск по второй таблице (где 298 тысяч) типа WHERE pr_index LIKE '%abc%' выполняется за 5-10 секунд. а по первой (305 тысяч) - около 1 минуты.

всем заранее спасибо
PM MAIL   Вверх
Ignat
Дата 14.9.2005, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



chaklun, как бы тебе сказать...
Если это повторяется, то тебе самому придется выяснить в чем дело. Ибо телепатический контакт с твоей базой не получится.
Вообчем RTFM, e.g. http://dev.mysql.com/doc/mysql/ru/crashing.html


--------------------
Теперь при чем :P
PM   Вверх
chaklun
Дата 14.9.2005, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



поиск по базе производится по полю "артикул" или "наименование". оба эти поля проиндексированы
я дропнул индекс наименование, и поиск по артикулу полетел на крыльях ветра.

кто обьяснит почему так получается? smile
PM MAIL   Вверх
Бонифаций
Дата 15.9.2005, 07:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(chaklun @ 14.9.2005, 15:32)
поиск по базе производится по полю "артикул" или "наименование". оба эти поля проиндексированы
я дропнул индекс наименование, и поиск по артикулу полетел на крыльях ветра.

кто обьяснит почему так получается? smile

Покажите explain ваших запросов
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.