Пишу систему кеширования - кеш фрагментов страниц хранится в виде html.
Имеет ли смысл выкладывать кеш-файлы от каждого модуля в отдельную дирректорию?
Что больше повлияет на скорость работы - 10000 файлов в одной дирректоррии или вложенность в 3 уровня глубиной от исполняющего скрипта?
Спустя 36 минут, 58 секунд (20.01.2011 - 10:49) linker написал(а):
Чем больше файлов/папок в одной папке, тем медленнее доступ к ним. Глубина вложенности тоже влияет.
Спустя 16 минут, 21 секунда (20.01.2011 - 11:06) LRCenter написал(а):
Ну а какой фактор влияет сильнее в моем случае?
Спустя 9 минут, 28 секунд (20.01.2011 - 11:15) linker написал(а):
Много папок зло, больше времени потратишь на поиски нужно файла, да и смысла нет создавать папку, чтобы положить туда один файлик. Все равно что конфету завернуть в другую конфету.
Спустя 2 минуты, 56 секунд (20.01.2011 - 11:18) LRCenter написал(а):
А вот так на вскидку, в средней системе с какого количества файлов и папок в папке начинаются заметные тормоза при обращении к файлам?
Не, е не очень глубоко всего 3-4 уровня вложенности и файлов реально много.
Не, е не очень глубоко всего 3-4 уровня вложенности и файлов реально много.
Спустя 10 минут, 40 секунд (20.01.2011 - 11:29) linker написал(а):
LRCenter
Этого тебе никто не скажет никогда.
Думай как их структурировать, группировать по каким-то критериям, чтобы потом самому же было проще до них добраться.
Этого тебе никто не скажет никогда.
Думай как их структурировать, группировать по каким-то критериям, чтобы потом самому же было проще до них добраться.
Спустя 22 минуты, 19 секунд (20.01.2011 - 11:51) kirik написал(а):
LRCenter
Вложенность решает.
Вложенность решает.
Цитата (linker @ 20.01.2011 - 03:29) |
Думай как их структурировать, группировать по каким-то критериям, чтобы потом самому же было проще до них добраться. |
обычно берется имя файла (оно уникально), вычисляется хэш имени, и берутся первые 2-3 символа для создания вложенности.
$filename = 'mypic.jpg';
$hash = md5($filename);
$dir = '..../' . $hash[0] . '/' . $hash[1] . '/' . $hash[2] . '/';
// mkdir($dir, 0777, true);
// copy(..., $dir . $filename);
echo 'Файл будет лежать тут: ' . $dir . $filename;
Обращение к файлу будет происходить также.
UPD
тут сталкивался с проблемой "переполнения"
_____________
Меньше кода - меньше багов ©