У меня есть сайт, на котором все его изображения загружаются из базы данных MySQL.
Иногда, когда многие клиенты подключаются к сайту, он замедляется & Я делаю некоторые оптимизации на своем сервере & кодов для увеличения общей производительности.
Как кандидат на изменение, я хочу знать, что перемещение файлов из базы данных & Загрузка из статических файлов вместо динамически созданного содержимого может привести к значительному улучшению моей производительности?
Если да, есть ли в нем какие-либо ориентиры?Эффект загрузки файлов из базы данных mysql на производительность сайта
ответ
Хранение изображений в базе данных, как правило, плохая идея, но вы видите, что многие люди делают это без уважительной причины.
В 99% случаев я бы рекомендовал только хранить ссылки на пути к изображениям в базе данных и сохранять их статически.
Вот несколько причин, почему:
- Вы не перевязать как сервер приложений и сервер базы данных, передающую изображения в браузере, вы можете переложить это на самом веб-сервер, который более оптимизированной для этого ,
- Если у вас большой сайт, вы все равно захотите перенести статические изображения на CDN. Вы не можете сделать это с файлами в базе данных
- Приложение будет медленнее при попытке вставить изображения в базу данных, так как вам в основном нужно загрузить файл на сервер приложений, а затем развернуться и записать в БД, а не просто записывая ссылку на путь.
- Вы сами DB можете расти в размере с достаточной скоростью с достаточным количеством изображений. Вы не хотите связывать свою файловую систему с кучей файлов, которые можно хранить по низкой цене другими способами (например, распределенные службы хранения файлов, такие как Amazon S3)
Это не мой ответ тоже (как и предыдущий пост!), Я просто хочу знать, есть ли какие-либо доказательства того, что загрузка файлов из базы данных снижает общую производительность или нет? –
@EhsanKhodarahmi Вам нужно будет проверить это в своем конкретном приложении, чтобы определить влияние этого подхода и является ли оно даже одной из самых больших проблем с производительностью, которые вы хотите сосредоточить на исправлении. Мы не знаем вашего приложения или его среды, поэтому мы не можем оказать здесь никакой помощи. –
@EhsanKhodarahmi Вы не просили доказательства: вы спросили, правда ли это. Майк дал вам четыре правдоподобных причины, почему это правда. – EJP
У меня такая же ситуация, как у вас , Решение прост: кешируйте содержимое.
При запуске в первый раз, запрос, чтобы получить изображение, то есть:
SELECT * FROM images WHERE id = 1
Тогда просто кэшировать результат в файл:
file_put_contents("image1.png",$row['data']);
В следующий раз просто проверить каждый раз, когда есть файл, это позволит избежать запроса к базе данных.
Это не ответ на мой вопрос, потому что я не уверен, что кеширование может улучшить производительность! –
Кэширование, конечно же, может улучшить производительность, особенно когда это позволяет вам запускать запрос в вашу базу данных. Поскольку хранение/запрос изображений в базе данных дорог – dynamic
@EhsanKhodarahmi Вы не уверены, что это не повод, почему это не ответ. Кэширование почти всегда повышает производительность. Это не противоречиво. – EJP
- 1. Производительность загрузки сайта
- 2. Базы данных против файлов (производительность)
- 3. Данных из базы данных после загрузки файлов
- 4. Производительность сайта и MySQL
- 5. Производительность базы данных MYSQL - размер
- 6. Коррумпированные загрузки файлов из базы данных MySQL с использованием PHP
- 7. базы данных и производительность: MySql и PHP
- 8. Проверка моего сайта на производительность базы данных и обработку трафика
- 9. Dreamweaver cs6 Загрузка и извлечение файлов из базы данных (mysql)
- 10. Ошибка загрузки базы данных MySQL
- 11. доступ MYSQL базы данных на основе файлов
- 12. Эффект Systemtap на производительность
- 13. Производительность загрузки многопоточных файлов Java
- 14. Производительность вставки базы данных
- 15. Производительность запросов асинхронной базы данных MySQL
- 16. Как увеличить производительность базы данных mysql
- 17. Оптимизация PHP, производительность сайта сообщества MYSQL
- 18. Производительность массовой загрузки данных из XML-файла в MySQL
- 19. Использование jquery для загрузки данных из базы данных mysql
- 20. MVC загрузки файлов и вставки базы данных
- 21. переменные сайта из базы данных
- 22. Динамические элементы загрузки из базы данных
- 23. Локализация/производительность облачной базы данных
- 24. Производительность сайта и загрузка
- 25. Настройка базы данных MySQL для веб-сайта
- 26. Как создать карту сайта из базы данных MySQL
- 27. Производительность базы данных Realm
- 28. Форма сайта, заполненная из базы данных mySQL, как вернуть данные
- 29. Сайта экранной информация из базы данных
- 30. Как измерить производительность базы данных?
Голосование, чтобы закрыть вопрос, как OP указал в комментариях, что он пытается понять, как это влияет на производительность в его среде. Это приводит к более широкому вопросу о том, как запускать тесты производительности в приложении/среде и определять узкие места производительности. Это не может быть охвачено простым вопросом SO. –
Запрос на бенчмарк также не соответствует теме. – EJP