- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
где лучше хранить кэш больших размеров 4 000 000 по 50-400 кб данных. В бд или в файловой системе? как разделить файлы? Бд майэскьель.
Называю это кешем, потому что все данные меняются полностью каждые 24 часа. То есть полностью удаляются. И добавляются совсем другие данные возможно. Может быть меньше может быть больше.
База данных не подходит потому что в ней медленно обратабываются данные больших размеров в поле. То есть если кечить хтмл получится 400 кб в одном поле таблица на 4 млн действительно медленно, будет обрабатывать эти запросы. Но вот елси будет 4 000 000 файлов не известно, будет ли быстрее.
а мне кажется, что систему кэша менять нужно.
у вас 4 млн записей не используются же каждый день?
База данных не подходит потому что в ней медленно обратабываются данные больших размеров в поле.
При правильеой настройке mysql сервера и базы будет работать очень быстро.
Если все-таки не устраивает, тогда в memcache или на диске с файловой системой ReiserFS (Linux) / UFS (Freebsd).
Вот рассматривается ситуация если будут использоватся 4 000 000 каждый день, если же нет, то будет меньше записей, но от этого если выбрать способ который подходит под 4000 000 при меньшем количестве не произойдет я думаю критических ситуаций с производительностью.
В чем разница между ReiserFS и ext3?
По поводу мемкэтч) пока, что сервер один, будет больше серверов можно будет больше хранить данных в мэмкэч, сейчас не оптимально хранить больше 2000 записей размером от 50кб в мэмкетч. В мэмкетч попадают только наимболее часто используемые. А остальные будут использовватся возможно один раз в день! Или максимум по несолько раз. Но с большим потоком.
В чем разница между ReiserFS и ext3?
Очень высокая скорость работы при наличии большого количества мелких файлов в одном каталоге.
Кеш хранить в файл-блоках, со структурой /dir/subir/block
В файл-блок идут много мелких объектов, со смещением или один большой
А еще, если это сайт, то кешировать можно на уровне web-сервера nginx/squid/etc
а что если организовать директории в виде 200 в третей степени. то есть на верхнем уровне 200 директорий в каждой еще по 200 и в каждой по 200 файлов. получится в директории не очень много файлов. А в базе только путь хранить, проиндексировав ключ, будет дочтаточно быстро находить путь. В сотни раз быстрее чем если бы хранить в базе текстовые поля по 50 кб, как, кто на такой вариант смотрит?
а что если организовать директории в виде 200 в третей степени. то есть на верхнем уровне 200 директорий в каждой еще по 200 и в каждой по 200 файлов. получится в директории не очень много файлов. А в базе только путь хранить, проиндексировав ключ, будет дочтаточно быстро находить путь. В сотни раз быстрее чем если бы хранить в базе текстовые поля по 50 кб, как, кто на такой вариант смотрит?
Деление на директории ничего не даст. Вы же лично не будете их просматривать?
Пути можно хранить в базе, главное индексы расставить, чтобы был быстрый поиск.
Попробуйте реализовать вложенность такую:
$md5 = md5(имя_файла);
/cache/substr($md5, 0, 1)/.../substr($md5, N, 1)/$md5
N можете прикинуть сами, на каждом таком уровне вы получите деление на 256 подкаталогов. Но с таким количеством не забывайте про Коллизии
а что если организовать директории в виде 200 в третей степени. то есть на верхнем уровне 200 директорий в каждой еще по 200 и в каждой по 200 файлов. получится в директории не очень много файлов. А в базе только путь хранить, проиндексировав ключ, будет дочтаточно быстро находить путь. В сотни раз быстрее чем если бы хранить в базе текстовые поля по 50 кб, как, кто на такой вариант смотрит?
Вполне рабочий вариант, особенно если базу держать в чем-то быстром, типа redis.
Вполне рабочий вариант, особенно если базу держать в чем-то быстром, типа redis.
Тут вон mysql обещает сделать memcached-подобный интерфейс. Может через пару лет все начнут понимать, что это не mysql тормозной, а программисты в SQL не разбираются.