Ну это первое, что пришло в голову, их там несколько разных, только я не помню, каких, мне больше нравится непосредственно запросы формировать и текст страницы разбирать ручками.
Не создавать базы большие, чем объём оперативки. Там всё отлично со стабильностью, если вы принимаете правила игры, то есть держите достаточно свободной памяти.
Вы почитайте сайт, там очень всё по делу и интересно, и все вопросы на которые я хотел узнать ответ там были. Ваши, наверное, тоже будут.
Конечно, нужно заранее все эти выборки и сортировки продумать. Например по дате обновления элементарно делается sorted set с ключом времени, с групировкой, например, по поставщику - тоже несложно... Немножко извратиться придётся, чтобы добавить в NoSQL функциональность реляционных баз, зато летать будет, а вам, как я понял, это важнее, чем неудобства при разработке.
Тю, я-то думал... Настройте следилку, чтобы не проворонить момент, когда нужен будет апгрейд памяти на сервере и делайте простой редис, память нынче дешёвая.
redis.io/topics/faq вот тут ваш вопрос освещается, в том числе. Но скажите, что вы там храните. что вам не хватит десятков гигабайт памяти... Если там основная масса - архивные данные, то убирайте их потихонечку, в redis есть прекрасный метод, который удаляет данные по таймеру. Значит ваша архитектура - запрашиваете объект в редисе, если его нет - запрашиваете в большой и медленной базе (как сейчас), если есть - возвращаете и продлеваете время жизни записи.. Когда вставляете/изменяете - сразу вставляете в редис, устанавливаете время удаления, потом не спеша вставляете в медленную базу. Будет летать на часто используемых записях и совсем чуть-чуть тормозить на редких.
И ещё, int(4) показывает, что вы пока не знаете, что это за форматы, покурите немножко мануалку про типы полей, их всего пара десятков, там достаточно интересно, чтобы понять, что и для чего нужно. Для пятизначных айдишников городов, например, вполне достаточно SMALLINT unsigned.
Да, табличка правильная, это многие ко многим. Один человек принадлежит нескольким городам, а в каждом городе может быть несколько человек. Решается промежуточной таблицей.
А вообще я невнимательно смотрел, показалось, что 10к запросов в секунду. Если же запросов всего несколько сотен в секунду, то справится любая грамотно спроектированая база, хоть мускль, хоть постгрес, хоть что угодно почти.
Глупости, в памяти хоть и лежит, а настройки сохранения на диск очень гибкие и удобные, если у вас часто ребутятся сервера - хоть в риалтайме сохраняйте, за счёт производительности, конечно.
Очень странные у вас друзья, между прочим. Асинхронное программирование ИДЕАЛЬНО для веб-разработки, где львиная доля времени тратится на ожидание ответа от сети/базы. Сами они быдлокодеры, с нодой всё хорошо, и она-таки может быть очень быстрой, даже с математикой может работать достаточно быстро.
От амбиций ещё, наверное, зависит, может быть вам и нормально получать "больше средней зарплаты по городу" и к чёрту тогда перспективы "получать/зарабатывать достаточно, чтобы ни в чём себе не отказывать вообще".
Вуз лучше, конечно, намного. Вы поймите очень простую вещь. Вам около 20, у вас нет ни опыта в какой-то сфере (когда знаешь, как нужно делать, потому что уже такое делал), ни знаний (когда можешь догадаться как нужно делать, потому что умеешь догадываться). Вы НИКОГДА не сможете заработать нормальных денег, вас в любом случае будут использовать, в лучшем - с целью вырастить специалиста под свои задачи, в худшем - чтобы выгнать через годик и взять ещё одного студента. Что может измениться через пять лет? Через пять лет вы либо прокачали матан (программирование, алгоритмику, связи - что угодно) и знаете много всякой магии, которую, кроме вас, знают единицы (и работодатели выстраиваются САМИ за вами в очередь). Либо вы получили опыт, и вас с готовностью возьмут на очередную говно-должность, в которой не нужно много работать, но и нельзя много получить, затем начинается семья/дети и всё, круг замкнулся. Идти работать (без абсолютной необходимости, типа больных родителей, неспособных вас больше содержать) вместо того, чтобы самосовершенствоваться - очень и очень большая глупость, вы меняете абсолютно реальные перспективы стать квалифицированным работником на ещё более реальные перспективы стать работником неквалифицированным, и не надо уповать на самообразование, неквалифицированных работников выжимают так, что ничего больше не хочется, а если, даже, повезёт устроиться туда, где будет свободное время - у вас напрочь пропадёт мотивация, конечно, эти лошочки на третьем курсе матан грызут и мамин суп кушают, а я себе уже поддержаную тойоту купил/живу отдельно от родителей/сам себя обеспечиваю. Быть студентом - хорошо, особенно в хорошем вузе, который реально учит чему-то, неважно чему, а не выдаёт корочку за пять лет дуракаваляния. В первом случае надо учиться и становиться квалифицированым специалистом, во втором надо не тратить время на формальности и саморазвиваться, раз уж в нормальный вуз не смогли попасть.
Вам до руководящих должностей ещё пилять и пилять. Если есть деньги/кормят мама с папой - учитесь спокойно, академическое образование облагораживает, умных слов узнаете, умных мыслей появится, опять же знакомства всякие завяжутся, девочку, может, найдёте, университет это хорошее дело. Если денег нет - ну работайте, повышайте профессиональный уровень, а потом как обычно - джуниор, мидл, сениор, руководитель проекта. Уверяю вас, никто и никогда не будет отказывать в руководящей должности человеку с опытом только из-за отсутствия корочки.