![]() |
|
Модераторы: skyboy |
![]()
|
|
| chaklun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
Начнем с вопроса: А зачем одинаковые таблицы -------------------- Теперь при чем :P |
|||
|
||||
| chaklun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 21.5.2004 Репутация: нет Всего: нет |
блин.
таблицы с разными именами, для каждого поставщика. если слить вкучу, то вообще поиск 2-5 минут идет |
|||
|
||||
| Ignat |
|
||||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
Даже если на поставщика индекс повесить? А вообще по вопросу - индексы по ходу полетели, восстановить надо.
Если не помогает, то myisamchk. -------------------- Теперь при чем :P |
||||
|
|||||
| chaklun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 21.5.2004 Репутация: нет Всего: нет |
после REPAIR TABLE `price_at`заработало как часы. получается, мне надо делать эту команду каждый раз после всякого изменения данных в ней? странненько
|
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
Нет, просто у тебя не были корректно обработаны блокировки в какой-то момент. Иногда случается. -------------------- Теперь при чем :P |
|||
|
||||
| chaklun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 21.5.2004 Репутация: нет Всего: нет |
и у меня, и у заказчика одна и та-же картина наблюдается....
буду делать в конце каждого импорта эту команду... |
|||
|
||||
| chaklun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 21.5.2004 Репутация: нет Всего: нет |
пардон, пару слов о блокировках пожалуйста. что эт такое, и как делается?
|
|||
|
||||
| chaklun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 21.5.2004 Репутация: нет Всего: нет |
странно. после REPAIR TABLE первый запрос выполняется долго (как и раньше). а последующие - быстро.
Это сообщение отредактировал(а) chaklun - 13.9.2005, 23:06 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Поиск в мануале MySQL по Repair Table и читание вокруг написанного (особено там, где про оптимизацию - типа "как MySQL делает то и это") даст пищу для подумать... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| chaklun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 21.5.2004 Репутация: нет Всего: нет |
мож кто-нить порекомендует что-то радикальней?
глубоко вчитываться, к сожалению, некогда. сроки горят моя программа при импорте базы поставщиков в таблицы тупо инсертит запись за записью. больше никаких манипуляций. может быть не стоит ожидать чудес от мускуля при обьеме данных около 700 тысяч записей в сумме по 5м таблицам? у меня 5 таблиц одинаковой структуры, отдельно для каждого поставщика. в одной таблице 305 тыщ, во второй 298 тыщ. в 3,4,5 по 30 тыщ. при чем поиск по второй таблице (где 298 тысяч) типа WHERE pr_index LIKE '%abc%' выполняется за 5-10 секунд. а по первой (305 тысяч) - около 1 минуты. всем заранее спасибо |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
chaklun, как бы тебе сказать...
Если это повторяется, то тебе самому придется выяснить в чем дело. Ибо телепатический контакт с твоей базой не получится. Вообчем RTFM, e.g. http://dev.mysql.com/doc/mysql/ru/crashing.html -------------------- Теперь при чем :P |
|||
|
||||
| chaklun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 21.5.2004 Репутация: нет Всего: нет |
поиск по базе производится по полю "артикул" или "наименование". оба эти поля проиндексированы
я дропнул индекс наименование, и поиск по артикулу полетел на крыльях ветра. кто обьяснит почему так получается? |
|||
|
||||
| Бонифаций |
|
|||
|
Unregistered |
Покажите explain ваших запросов |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |