Форум сетевых администраторов Страницы (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)


Помещено Xel'[Naga] 16-09-2005 в 10:56:

Сколько раз скрипт(программа)(целый сбор отчёта) будет выполняться в день и с какой периодичностью?
Индексируй поля, тогда выбор будет очень быстрым. Насколько я вижу у тебя индексации вообще нет, а вот и зря.

__________________
Всего хорошего.


Помещено he][es 16-09-2005 в 11:19:

Ну это да... пока нет. Я знаю что зря
Насколько часто, пока не знаю... Но достаточно. В частности этот скрипт генерит картинку/график, а их может быть неск. на странице...
И вообще к прим. 10 чел.к (их всего будет не так много.) обратились к сайту, и .... началось перелопачивание базы... по 2-3 раза... (я вот подумываю о введении temporary tables дабы одно и тоже по неск. раз не пересчитывать...)

__________________
Админ - вождь Апачей...


Помещено Xel'[Naga] 16-09-2005 в 11:33:

Мля. Ну насмешил-то =)
Вот когда реальная работа будет тормозить(например смотреть загруженность в день и сравнивать с предыдущими днями, если нагрузка будет постоянно расти, тогда да) систему, тогда и можно соображать.
Просто я думаю, что тебе не обойтись тут 1 запросом. Но это моё имхо.

__________________
Всего хорошего.


Помещено he][es 16-09-2005 в 11:41:

Ну почему же насмешил?.. См. 10 чел.к к примеру выбор по 4м таблицам: одну в цикле перебирают 96 (пока) записей, суммируют отдельно по ещё 2м, и к ним по id привязывают 3ю... Итого?.. 192 запроса на чел-ка... :/ Причём не самых простых... Имхо это не правильно.
Одним знаю не справиться, хотелось бы как можно меньшим кол-вом. А делать опять же ИМХО нужно правильно и с самого начала.
Зы. Чуток меняется формат таблицы, может поможет:

code:

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'

__________________
Админ - вождь Апачей...


Помещено Xel'[Naga] 16-09-2005 в 13:10:

Теперь насчёт запросов. Не нужно приводить кол-во записей, приводи кол-во запросов всего.
Есть ещё такой вариант:
У тебя всего 4 таблицы, ПУСТЬ даже 4 запроса. Ты делаешь запрос загоняешь все данные в память(массив). И всё, делай с массивом что хочешь. база тебе больше не нужна. Назовём это кешем
В данном случае тебе придётся писать функции для работы с массивами.
Если хочешь быть уверен, чтобы данные были свежие LOCK TABLE тебя спасёт.
Устраивает такой вариант?

__________________
Всего хорошего.


Помещено he][es 16-09-2005 в 21:31:

quote:
Итого?.. 192 запроса на чел-ка...

...кх-кх...
quote:
Ты делаешь запрос загоняешь все данные в память(массив).

Ð_то какой запрос в массив загонять?.. с информацией о расходах и лимитах?.. А если это 2000-5000 записей?.. Не многовато ли памяти есть будет?..

__________________
Админ - вождь Апачей...


Помещено Xel'[Naga] 17-09-2005 в 02:17:

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.