У меня простая система комментариев пользователей. Они могут иметь изображение. В настоящее время я сохраняю загруженные пользователем изображения в папке. Я ничего в БД не писать для изображения, очень просто я имя файла изображения с комментарием ид (только одно изображение на комментарий разрешено) и хранить их все в одной папке:Ссылаясь на загруженные пользователем файлы - DB или имя файла?
move_uploaded_file($upload_pic,'images/'.mysql_insert_id().'.jpg');
//please note I am also upgrading to mysqli
затем при получении комментария данные из базы данных, которую я проверяю с помощью file_exists(), и потенциально отображая полное изображение с комментарием.
if (file_exists('images/'.$fid.'.jpg')) echo '<img width="576" src="images/'.$fid.'.jpg">';
Теперь я хочу, чтобы изменить его, чтобы иметь возможность хранить и показывать больше кадров в должности (по-прежнему ограничены 4) и имеют также эскизы.
Здесь возникает вопрос
для такой простой системы это быстрее, чтобы хранить все ссылки на файл в отдельной таблице в базе данныхили повышения имен файлов связанных комментировать ID?
- Если база данных - как назвать файлы? using uniqid? Простой идентификатор таблицы сопоставления, imgname.
- Если имя файла Я думал о
XXXXXX-Y.jpg
и получал сglob("images/".round(XXXXXX/1000)."/XXXXXX-*.jpg")
, имея максимум 1000 файлов в одной папке. (в настоящее время есть 6.5k изображений в сообщениях 105k за последние 10yrs)
Мне кажется, что имя файла кажется более простым, так как мне не нужно хранить дополнительную информацию, связанную с изображением, но, с другой стороны, кажется, что большинство людей использует базу данных. И хотелось бы сосредоточиться на пути с лучшей производительностью.
Спасибо Рашид, я думаю, что это имеет смысл. Мне не нравится идея сохранения изображения в базе данных, но я сосредоточусь на таблице сопоставления. Как вы думаете, я разделил файлы на несколько папок, так как теперь у меня около 6500 файлов в одной папке. – John
Как только вы больше не смотрите, если файлы существуют, количество файлов в папке оказывает меньшее влияние на производительность.Вероятно, вам больше не понадобится разбить их в папках. –
@John Как сказал Лоренц, он не будет иметь существенного влияния на производительность, но если он поможет вам в управлении, а не в хорошей папке. (Но вам нужно знать, в какой папке находится изображение) – rashid