![]() |
|
Модераторы: skyboy |
![]()
|
|
| Astraller |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: нет Всего: 5 |
Моск вскипел. Помогите.
И сама ошибка:
Это сообщение отредактировал(а) Astraller - 20.12.2007, 11:53 -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
| Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: нет Всего: 5 |
skyboy, сори, я наверно туп, но посмотрев спецификацию все равно не вижу где ошибся. Помогите.
Скобки поставил уже в процессе отладки. Без них ситуация та же. -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
ты мне другое скажи: зачем запихнул в один update обновление кучи таблиц, не связанных между собой? почему не множество UPDATE'ов, обернутых в одну транзакцию?
по отдельности запросы выполняются? вот такое, например:
Добавлено через 19 секунд
|
||||
|
|||||
| Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: нет Всего: 5 |
skyboy, такой запрос выполняется вполне. Все запросы, к стати, к одной таблице.
-------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
черт
а что, если так:
впрочем, слишком большой список в "in" сигнализирует о вероятно неверном подходе к структуре. или к интерфейсу. зачем такой большой список? это то, что человек навыбирал "вручную" или просто определенная группа логически связанных между собой элементов? |
|||
|
||||
| Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: нет Всего: 5 |
skyboy,
Работает Ага, именно то что человек навыбирал вручную PS Проблему то я для себя решил - использовал просто много UPDATE в одной сессии. Но почему указанный выше метод не работает мне интересно Это сообщение отредактировал(а) Astraller - 20.12.2007, 13:16 -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Даже если в таблице всего 86 записей, несчастный сервер пытается их перемножить, получая для отбора монстра с 86^86 (~2.3*10^166) записей - еще бы он не ругался... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: нет Всего: 5 |
Akina, хм... а зачем ему их перемножать если не секрет?
Причем я проверил - процесс mysql не сильно прыгает по ресурсоёмкости при работе скрипта. -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 3 Всего: 32 |
Astraller, попробуй сделать селект по такому же принципу.
и выведи полученные строки. сразу увидишь, что он умножает |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
потому что неявный JOIN без указания условия связываний даст декартово произведение всех записей всех таблиц. впрочем, благодаря условиям в where, как мне кажется, происходит join уже после результатов выборки одной строки для каждого псевдонима. но в любом случае, join хоть и может дать только одну строку, но будет куча полей, что ни к чему хорошему не приведет. впрочем, лучше проверить при помощи explain(заменить "update" на "select *"). а ругается не на количество записей/нехватку памяти, а на несоответствие правилам синтаксиса SQL. Добавлено через 1 минуту и 18 секунд
у него же where по значению(видимо) первичного ключа. потому как для каждого псевдонима будет только одна строка. потому даже если выбираются все строки для каждого алиаса, выведется все равно только одна строка. надо смотреть результат explain. |
|||
|
||||
| Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: нет Всего: 5 |
Переварил. Всем спасибо
PS Ушел учить мат часть. -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |