Более чем возможный.
SELECT ... WHERE id > 100
SELECT ... WHERE id > 0
И, например, у постгреса дока про схему «сперва отдать лежащее в оперативке пока данные с диска тянутся» написано явно. Вполне возможно, что и мускуль так делает, хоть дока и не говорит об этом.
Ипатьев, всё бы хорошо, но Q&A, то есть первично наличие ответа на заданный вопрос. Но я не против указания сперва как надо, а потом «но чую у тебя, автор, система древняя, поэтому вот тебе вариант с экранированием».
Ипатьев, я что-то очень сомневаюсь, что код спрашивающего крутится на 8.2. Куда вероятнее что там древнее <= 5.5
Но хотя бы адекватно заэкранировать дельфин мог.
mayton2019, Валентин Бируля, для мускуля неприятно, а постгресу по барабану — он жирные значения хранит отдельно.
В постгресе есть какое-то сжатие данных из коробки, есть форки типа PostgrePro где сжатие куда более эффективное, можно класть в базу уже пожатые данные. Ну и в зависимости о того, могут ли они дублироваться, стоит ещё глянуть в Clickhouse.
Вова, общего решения нет и не будет. Что-то работающее в 80 - 99% случаев сделать реально.
Кто-то воюет с роботами, кто-то ставит бесконечную ленту, у кого-то по три пагинации на странице, кто-то ставит кривые next/prev в метатегах.
Даже в такой схеме напрашивается какая-то нормализация атрибутов иначе поиск превращается в кошмар для пользователя: один производитель прислал размер носков 45, другой 43-45, а пользователь обязан выбрать в фильтре все варианты, чтобы найти 45-й размер.
То есть для поиска - реальные столбцы, а данные от производителя в JSON использовать для отображения.
Да и Постгрес довольно пофигистично смотрит на «дырки», лишь бы количество столбцов не уходило в космос.
Adamos, как по мне, лучше дать спички и сразу подпалить палец — надёжно запоминается как делать нельзя и, что важно, почему.
Если подпалить нельзя, то перечислить проблемы, а плюсы пусть ищет сам.
Adamos, так и про денормализацию, и вообще про написание кода можно сказать. Предлагаете вместо написания кода страдать фобиями / охоту на ведьм устроить?
ThunderCat, Adamos, Постгрес весьма неплохо умеет индексировать JSON.
Евгений Усачев, смотря насколько часто вам нужно получать пропуск вместе с пользователем. Всё же JSON хранит не только значения, но и ключи, сжатие из коробки отсутствует.
Из вашего описания напрашивается отдельная таблица, но и какой-то проблемы в json не вижу кроме нескольких моментов: 1) а могут ли действовать несколько пропусков у одного человека? 2) как делаете замену пропуска? 3) будете ли выяснять, чей месяц назад был пропуск N?
Положим нужные версии php и nginx элементарно ставятся через brew / fink, но, как уже не раз сказали, «не было речи про развёртывание у заказчика» - значит даёшь рабочую инструкцию как развернуть на чём тебе удобнее и договариваешься отдельно.
vadim, 4 - 7 часов хватит только если в комплекте полностью рабочая (и короткая) инструкция по разворачиванию, сам проект довольно простой (занимался им один человек в пределах года и при этом не говнокодил), а код который нужно исправить используется в одном месте.
Мне что-то подсказывает, что не всё так радужно.
На прошлой работе как раз конкурент был и первые 3-7 дней давали на знакомство с потрохами фреймворка, потом пару недель на решение пары задачек которые знакомый с проектом человек делает за 2-4 часа.
А вскоре уходите от тормозящих триггеров к обновлению раз в N минут. Просто потому, что обновление в реальном времени не особо-то и нужно.
Либо использовать гибридный подход - всё, что перенесли в статистические таблицы из журнала событий удалять. Тогда необработанных событий будет чуть-чуть.
47911, по идее уже 7.0 не имел таких проблем, так что если исключить баг именно в установленной у вас версии, останется:
1) может где-то в коде всё пихают в «безразмерный» кеш Apcu
2) какое-то расширение типа ioncube с ума сходит.
3) вы из базы пытаетесь вытащить огромные объёмы данных или код очень неэффективно написан.
Чтобы исключить описанное Станиславом попробуйте убрать нафиг фреймворки, оставить тупой скрипт на php который ни от чего не зависит, просто выплёвывает немного html. Если жор прошёл, то по частям возвращаете функционал.
Вадим Ушаков, в тест вопроса / теги )
Я сам на сях ничего не писал лет 10, не шарю. Могу только предложить попробовать описанное в статье и особо приглядеться к упомянутому в конце Zig.
Мускуль плохо переваривает IN по куче значений.
Емнип, где-то на тысячах начинаются проблемы.