Моё меню Общее меню Сообщество Правила форума Все прочитано
Вернуться   uForum.uz > ИКТ и телеком > Веб-ресурсы и доменные имена
Сообщения за день Поиск
Знаете ли Вы, что ...
...до того как открыть новую тему, стоит использовать поиск: такая тема уже может существовать.
<< Предыдущий совет - Случайный совет - Следующий совет >>

Веб-ресурсы и доменные имена Раздел про интернет-ресурсы и доменные имена


Ответить

 
Опции темы Опции просмотра
Старый 01.02.2012 22:13   #51  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Aziz Madetov Посмотреть сообщение
Второй способ заключается в том, что, как все наверное уже заметили, загруженные картинки хранятся в папках по датам, типа /2012/02/01/image.jpg - так вот, в папках каждый день создается индекс содержимого с указанием даты создания и последнего доступа, которая перезаписывается скриптом при запросе. Далее все просто
Это очень медленно, не заморачивайтесь даже.
Через 2-3 года и +100 000 картинок сервер будет просто «умирать» на этом месте.
Ответить 
Старый 01.02.2012 22:26   #52  
Real ID Group
Аватар для Denis Shlyapnikov
Оффлайн
FreeLance
Python/PHP программист
Сообщений: 1,054
+ 886  435/275
– 35  6/6

Russian FederationОтправить сообщение для Denis Shlyapnikov с помощью Skype™Facebook
Цитата:
Сообщение от Руслан Худяков Посмотреть сообщение
Цитата:
Сообщение от Aziz Madetov Посмотреть сообщение
Второй способ заключается в том, что, как все наверное уже заметили, загруженные картинки хранятся в папках по датам, типа /2012/02/01/image.jpg - так вот, в папках каждый день создается индекс содержимого с указанием даты создания и последнего доступа, которая перезаписывается скриптом при запросе. Далее все просто
Это очень медленно, не заморачивайтесь даже.
Через 2-3 года и +100 000 картинок сервер будет просто «умирать» на этом месте.
Хочется отметить, что первый способ будет не лучше, постоянные запросы mysql со временем отправят сервер в даун.
Хотя есть более быстрые DB, но все равно это постоянная нагрузка на сервере будет.
__________________
http://hit-season.net/ - сериалы On-Line!
Ответить 
Старый 01.02.2012 22:56   #53  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
Цитата:
Сообщение от Руслан Худяков Посмотреть сообщение
Цитата:
Сообщение от Aziz Madetov Посмотреть сообщение
Второй способ заключается в том, что, как все наверное уже заметили, загруженные картинки хранятся в папках по датам, типа /2012/02/01/image.jpg - так вот, в папках каждый день создается индекс содержимого с указанием даты создания и последнего доступа, которая перезаписывается скриптом при запросе. Далее все просто
Это очень медленно, не заморачивайтесь даже.
Через 2-3 года и +100 000 картинок сервер будет просто «умирать» на этом месте.
Хочется отметить, что первый способ будет не лучше, постоянные запросы mysql со временем отправят сервер в даун.
Хотя есть более быстрые DB, но все равно это постоянная нагрузка на сервере будет.
Глупости.

Смотрите сами —

При запросе картинки, например http://img.site.com/pictures.jpg
Ваш движок получает в переменную ее имя: $image=pictures.jpg

На каждую картинку в таблице всего несколько полей — "ID владельца", "Дата загрузки", "Размер", "EXIF данные", "Дата последнего запроса", "Публична/Приватна", "Имя картинки", "Размер X", "Размер Y", "Теги", "Тип", "Ну и еще какие ни будь полезности"

Все столбцы, по которым возможен запрос типа SELECT загоняем в Индекс, полный путь (исходная, миниатюра) принять постоянным для всех, чтобы не записывать отдельно (например "/mini/", "/orignl/").
Поле "Дата последнего запроса" даже не обязательно обновлять PHP-скриптом, можно пойти на хитрость, и выполнять холостой UPDATE-запрос, тогда выбрав тип TIMESTAMP мы возложим это на сам MySQL, который пробъет текущую дату.

Таким вот макаром получаем, что запрос картинки из MySQL на простеньком самодельном сервере будет занимать всего 0.003—0.005 с.

Профит:
Имеем гибкую структуру для поиска по различным признакам (размер, тип, автор, EXIF, и тд…)

Запуская раз в сутки, например в 5 утра, когда все спят, по Крон-у скрипт, который выполнит что-то типа SELECT * FROM img WHERE last_date >= cur_date+60 дней, находим просроченные.
И спокойно скриптом-удалялкой хлопаем по порядку все, что нашлось не нужное и из базы и с диска.

И все будет прекрасно работать и со 100 000 и с 500 000 и даже с 5 000 000 элементов.

А почему постоянные запросы к MySQL должны «отправить сервер в даун» — я вообще не понял.
С какой радости?
Ради приличия, можно после удаления ненужных запускать оптимизацию: OPTIMIZE TABLE `img`


Последний раз редактировалось JackDaniels; 01.02.2012 в 22:58.
Ответить 
"+" от:
Старый 02.02.2012 01:03   #54  
Real ID Group
Аватар для Denis Shlyapnikov
Оффлайн
FreeLance
Python/PHP программист
Сообщений: 1,054
+ 886  435/275
– 35  6/6

Russian FederationОтправить сообщение для Denis Shlyapnikov с помощью Skype™Facebook
Цитата:
Сообщение от Руслан Худяков Посмотреть сообщение
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
Цитата:
Сообщение от Руслан Худяков Посмотреть сообщение
Это очень медленно, не заморачивайтесь даже.
Через 2-3 года и +100 000 картинок сервер будет просто «умирать» на этом месте.
Хочется отметить, что первый способ будет не лучше, постоянные запросы mysql со временем отправят сервер в даун.
Хотя есть более быстрые DB, но все равно это постоянная нагрузка на сервере будет.
Глупости.

Смотрите сами —

При запросе картинки, например http://img.site.com/pictures.jpg
Ваш движок получает в переменную ее имя: $image=pictures.jpg

На каждую картинку в таблице всего несколько полей — "ID владельца", "Дата загрузки", "Размер", "EXIF данные", "Дата последнего запроса", "Публична/Приватна", "Имя картинки", "Размер X", "Размер Y", "Теги", "Тип", "Ну и еще какие ни будь полезности"

Все столбцы, по которым возможен запрос типа SELECT загоняем в Индекс, полный путь (исходная, миниатюра) принять постоянным для всех, чтобы не записывать отдельно (например "/mini/", "/orignl/").
Поле "Дата последнего запроса" даже не обязательно обновлять PHP-скриптом, можно пойти на хитрость, и выполнять холостой UPDATE-запрос, тогда выбрав тип TIMESTAMP мы возложим это на сам MySQL, который пробъет текущую дату.

Таким вот макаром получаем, что запрос картинки из MySQL на простеньком самодельном сервере будет занимать всего 0.003—0.005 с.

Профит:
Имеем гибкую структуру для поиска по различным признакам (размер, тип, автор, EXIF, и тд…)

Запуская раз в сутки, например в 5 утра, когда все спят, по Крон-у скрипт, который выполнит что-то типа SELECT * FROM img WHERE last_date >= cur_date+60 дней, находим просроченные.
И спокойно скриптом-удалялкой хлопаем по порядку все, что нашлось не нужное и из базы и с диска.

И все будет прекрасно работать и со 100 000 и с 500 000 и даже с 5 000 000 элементов.

А почему постоянные запросы к MySQL должны «отправить сервер в даун» — я вообще не понял.
С какой радости?
Ради приличия, можно после удаления ненужных запускать оптимизацию: OPTIMIZE TABLE `img`

Т.е. вы считаете правильным держать записи Всех 5 миллионов картинок в mysql, к которому постоянно будут идти запросы.

Допустим что так и сделали, и у нас имеется 100.000 картинок. Все они, к пример, располагаются на нескольких посещаемых сайтах. Далее, к примеру - на одной странице одного из этих сайтов располагается 30 картинок - это уже 30 запросов (на 1 пользователя). А если там будут выкладывать типа сборника Демов или еще чего наподобие )) то и 30 картинок далеко не предел. Или просто на посещаемый форум вобьют в подпись картинки.
По факту получится же -
1 картинка - 1 запрос от одного пользователя, а сколько их будет?)

Поэтому, на мой взгляд хранить в таком виде картинки - не есть хорошо.
__________________
http://hit-season.net/ - сериалы On-Line!
Ответить 
Старый 02.02.2012 01:12   #55  
Real ID Group
Аватар для Denis Shlyapnikov
Оффлайн
FreeLance
Python/PHP программист
Сообщений: 1,054
+ 886  435/275
– 35  6/6

Russian FederationОтправить сообщение для Denis Shlyapnikov с помощью Skype™Facebook
А нет, ошибся, простите. Там не 1 запрос на 1 картинку, а 2
1 - выборка
2 - update
=\
__________________
http://hit-season.net/ - сериалы On-Line!
Ответить 
Старый 02.02.2012 01:19   #56  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
Т.е. вы считаете правильным держать записи Всех 5 миллионов картинок в mysql, к которому постоянно будут идти запросы.

Допустим что так и сделали, и у нас имеется 100.000 картинок. Все они, к пример, располагаются на нескольких посещаемых сайтах. Далее, к примеру - на одной странице одного из этих сайтов располагается 30 картинок - это уже 30 запросов (на 1 пользователя). А если там будут выкладывать типа сборника Демов или еще чего наподобие )) то и 30 картинок далеко не предел. Или просто на посещаемый форум вобьют в подпись картинки.
По факту получится же -
1 картинка - 1 запрос от одного пользователя, а сколько их будет?)

Поэтому, на мой взгляд хранить такой в таком виде картинок - не есть хорошо.
Дело не во взглядах, просто это удобный и правильный метод.
Изобретете что-то новое — пишите.

Чтоже до нагрузки, то даже если допустить, что при каждом посещении каждой страницы каждого сайта зарегистрированного на www.uz пользователь запросит 1 картинку (согласно статистики http://www.uz/ru/catalogue/stat/ это около 4 миллионов хитов за сутки), получается в районе 45 запросов в секунду, а при затратах времени на один запрос даже в 0.01 с, вы во много раз перекрываете потребность.

Быстрее заглохнет PHP, канал и дисковая система на отдачу самой картинки.

Подумайте сами, данных в базе на одно изображение: 1-2 кбайта, а сама картинка может быть и 2 и 5 мбайт.

Ответить 
"+" от:
Реклама и уведомления
Старый 02.02.2012 01:21   #57  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
А нет, ошибся, простите. Там не 1 запрос на 1 картинку, а 2
1 - выборка
2 - update
=\
Цитата:
Сообщение от Руслан Худяков Посмотреть сообщение
при затратах времени на один запрос даже в 0.01 с,
Учел, как видите

Да, еще ни кто не мешает использовать фронтэнд и кеш.

Вот только сильно сомневаюсь, что какой либо картинко-хостинг в узнете сможет похвалиться 4-мя миллионами хитов в сутки

Последний раз редактировалось JackDaniels; 02.02.2012 в 01:25.
Ответить 
"+" от:
Старый 02.02.2012 01:26   #58  
Real ID Group
Аватар для Denis Shlyapnikov
Оффлайн
FreeLance
Python/PHP программист
Сообщений: 1,054
+ 886  435/275
– 35  6/6

Russian FederationОтправить сообщение для Denis Shlyapnikov с помощью Skype™Facebook
Ну тогда и сервер надо ставить по мощнее )))
__________________
http://hit-season.net/ - сериалы On-Line!
Ответить 
Старый 02.02.2012 01:28   #59  
Real ID Group
Аватар для Андрей Андреев
Оффлайн
AKA:zxccc
Сообщений: 1,486
+ 1,424  558/347
– 239  110/71

UzbekistanОтправить сообщение для Андрей Андреев с помощью Skype™Facebook
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
сервер надо ставить по мощнее
интересно а у px.uz какой сервер стоит =)))
Ответить 
Старый 02.02.2012 01:31   #60  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
Ну тогда и сервер надо ставить по мощнее )))
Ну это само собой
Ответить 
Ответить

Метки
хостинг изображений, фотохостинг, tas-ix




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Advertisement System V2.5 By Branden
OOO «Единый интегратор UZINFOCOM»


Новые 24 часа Кто на форуме Новички Поиск Кабинет Все прочитано Вверх