![]() |
Страницы (2): « 1 [2] Показаны 22 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Помогите с запросом (http://netadmin.ws/forum/showthread.php?threadid=11031)
Сколько раз скрипт(программа)(целый сбор отчёта) будет выполняться в день и с какой периодичностью?
Индексируй поля, тогда выбор будет очень быстрым. Насколько я вижу у тебя индексации вообще нет, а вот и зря.
__________________
Всего хорошего.
Ну это да... пока нет. Я знаю что зря 
Насколько часто, пока не знаю... Но достаточно. В частности этот скрипт генерит картинку/график, а их может быть неск. на странице...
И вообще к прим. 10 чел.к (их всего будет не так много.) обратились к сайту, и .... началось перелопачивание базы... по 2-3 раза... (я вот подумываю о введении temporary tables дабы одно и тоже по неск. раз не пересчитывать...)
__________________
Админ - вождь Апачей...
Мля. Ну насмешил-то =)
Вот когда реальная работа будет тормозить(например смотреть загруженность в день и сравнивать с предыдущими днями, если нагрузка будет постоянно расти, тогда да) систему, тогда и можно соображать.
Просто я думаю, что тебе не обойтись тут 1 запросом. Но это моё имхо.
__________________
Всего хорошего.
Ну почему же насмешил?.. См. 10 чел.к к примеру выбор по 4м таблицам: одну в цикле перебирают 96 (пока) записей, суммируют отдельно по ещё 2м, и к ним по id привязывают 3ю... Итого?.. 192 запроса на чел-ка... :/ Причём не самых простых... Имхо это не правильно.
Одним знаю не справиться, хотелось бы как можно меньшим кол-вом. А делать опять же ИМХО нужно правильно и с самого начала.
Зы. Чуток меняется формат таблицы, может поможет:
CREATE TABLE `structura_kks_new` (
`id` int(11) NOT NULL auto_increment,
`title` tinytext NOT NULL,
`root_id` int(11) NOT NULL default '0',
`cleft` int(11) NOT NULL default '0',
`cright` int(11) NOT NULL default '0',
`parent` int(11) NOT NULL default '0',
`norder` int(11) NOT NULL default '0',
`level` int(11) NOT NULL default '0',
`name` tinytext,
`info` tinytext,
PRIMARY KEY (`id`),
KEY `root_id` (`root_id`),
KEY `norder` (`norder`),
KEY `cleft` (`cleft`),
KEY `cright` (`cright`),
KEY `level` (`level`),
KEY `SRLR` (`root_id`,`cleft`,`cright`),
KEY `parent` (`parent`)
) TYPE=MyISAM COMMENT='Structura kks'
__________________
Админ - вождь Апачей...
Теперь насчёт запросов. Не нужно приводить кол-во записей, приводи кол-во запросов всего.
Есть ещё такой вариант:
У тебя всего 4 таблицы, ПУСТЬ даже 4 запроса. Ты делаешь запрос загоняешь все данные в память(массив). И всё, делай с массивом что хочешь. база тебе больше не нужна. Назовём это кешем 
В данном случае тебе придётся писать функции для работы с массивами.
Если хочешь быть уверен, чтобы данные были свежие LOCK TABLE тебя спасёт.
Устраивает такой вариант?
__________________
Всего хорошего.
quote:
Итого?.. 192 запроса на чел-ка...
quote:
Ты делаешь запрос загоняешь все данные в память(массив).
__________________
Админ - вождь Апачей...
2000 записей могут быть разные.
У меня 800.000 записей занимают 160мб всего.
Можно в одну запись затолкать пару мегов. От базы всё зависит.
В твоём случае 2.000 это просто ни о чём, т.к. у тебя в основном цифры.
__________________
Всего хорошего.
| Формат времени GMT. Текущее время 18:03. | Страницы (2): « 1 [2] Показаны 22 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.