Задавайте вопросы, мы ответим
Вы не зашли.
Всем привет, есть таблица InnoDb в нее по задумки будут попадать в транзакции записи в течении дня (UPDATE не будет), записи типо time,msg,user,ratio. Выборка из этой таблице будет производиться по критерию найти последнее сообщение юзера, показать время сообщения,показать макс/ мин рейтинг участника,кол-во сообщений и.т.д вообщем типо лога. Так вот для не зарегистрированных пользователей я хочу сделать ограничение в во времени этих данных, чтобы они своими SELECT`ами не создавали тормозов для транзакций зарегиных участников. Добавил в event процедуру которая каждые 10-15 минут будет делать копию этой таблицы, скажем INSERT-SELECT`ом в таблицу в формате MyISAM. И ее отдавать уже гостям сайта, пусть они ее group by`ят и filesort`ят и в хвост и в гриву Скажите такая махинация будет оправдана? Или весь выигрыш в производительности будет съедать заполнение данными временной таблице?
Отредактированно simple (27.04.2011 20:05:16)
Неактивен
Скажите а можно каким нибудь образом в переменную загнать значения столбца при выполнение операции UPDATE, как это делается при выборки таблицы типо SELECT @a:=account FROM table?
Отредактированно simple (28.04.2011 09:34:00)
Неактивен
Вот еще вопрос назрел, делаю SELECT MAX(price) FROM catalog WHERE name_id=1
EXPLAIN выдает все столбцы NULL и в графе Extra пишет 'Select tables optimized away'. Что бы это могло быть? И быстро ли будет выполняться такой запрос, просто я хочу делать SELECT UNION этого запроса и не могу понять что значит все эти NULL хотя значение MAX выбирается правильно.
Отредактированно simple (28.04.2011 14:29:47)
Неактивен
Ого у Вас вопросы
1. Зависит от количества запросов, но, кажется, если Вы упретесь в одну табличку,
Вы будете нагружать диски общие с другой табличкой, следовательно, выигрыша не
будет. Лучше оптимизировать запросы.
2. Можете сделать это в триггере, например. Не могу, правда, придумать, зачем такое
может понадобиться. Учтите, что UPDATE может зацепить несколько строк одним за-
просом.
3. Это значит, что name_id = 1 нет в таблице. Если есть индекс на (name_id, price) —
быстро.
Неактивен
Спасибо за ответы. А если данные скидывать не в таблицу MyISAM, а в файл? слышал mysql умеет это шустро делать?
Отредактированно simple (28.04.2011 23:02:21)
Неактивен
Файл Вы положите на тот же диск? Читать его потом как будете?
Неактивен