Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Обычно в среднем проекте все что можно перенести на сторону sql сервера — переносим.
К тому же документацию ни кто не отменял.
К моменту начала кодирования должны быть проработаны и задокументированы все структуры, модули и API.
Они выдают шаблон приложения/системы.
Кому не удается?
Написал/изменил код — задокументируй.
Если не задокументировано, то тестерам непонятно что тестить — отбирай печеньки у программиста.
Лучшая документация — это сам код.тестировщики тестируют по бизнес-кейсамИзменение боевых баз — это нетипичная ситуация.
В случае ORM или подобных решений это было бы просто невозможно.
Например историю изменений — поменял кто-то данные и триггер сам вставил в таблицу пометку кто и когда правил.
SQL-сервер это такая штука в которой очень-очень много всего есть.
А почему нет?
Где тогда хранить эти двадцать миллионов пользователей?
SQL-сервер предоставляет кучу средств для всего.
если даже SQL-сервер падает на 15 тысячах пользователей и другое вполне себе упадёт
современные SQL-сервера вполне себе интегрируются с Active Directory и аутентифицируют с её помощью
OSUSER VARCHAR2(30) Operating system client user name
PROCESS VARCHAR2(24) Operating system client process ID
MACHINE VARCHAR2(64) Operating system machine name
PORT NUMBER Client port number
TERMINAL VARCHAR2(30) Operating system terminal name
PROGRAM VARCHAR2(48) Operating system program name
TYPE VARCHAR2(10) Session type
Не важно на каком уровне: БД или приложения.
Если знаем, и всё ещё продолжаем говорить на примере оракла, то в нём есть очень удобная вещь: контексты (типа переменных окружения)
прокачиваем данные из БД в приложениеНе обязательно. Даже если забыть о хранимках, то update select никто не отменял.
Отдельные таблицы — это далее получаем доп запросы или джойны. Чем больше данных, и чем меньше память сервера тем больше желание сделать все более быстрее.Именно — быстрее.
Тип таблицы — это «дело наживное». Какой быстрее работает, такой и будет.Разница в типах локов таблиц это наживное дело?
Лишние запросы — это ЛИШНИЕ запросы.А быстрые запросы — это БЫСТРЫЕ запросы. Вчера были маленькие но по 2, а сегодня большие но по 5:)
в случае с высокими нагрузками можно и на счет кэширующих систем холивор развести.То о чем мы говорим, это не кэширование. Тут нет редких выборок и дублирования данных и нет ситуации когда все дружно начинают лезть в кэш, в общем как раз нет типичных проблем кэширования. Просто часто обновляемые данные выносятся в отдельный блок для более быстрой с ними работы, по сути все не статические данные хранятся в отдельной таблице, это скорее можно сравнить не с кэшированием, а с простановкой индексов если уж на то пошло.
статистику и в гугле/метрике посмотрю,То есть Вам нравится идея еще более кардинального выноса статистики:) Вы не согласны только с половинчатым решением?:)
На одной чаше весов дергать 2 таблицы при показе статьи/ленты статей, на другой дергать всего 1 таблицу… хм… если вывод статей в приоритете, то второй вариант. Если нам надо часто считать статистику, то первый.Но плечи у этих весов разные.
Речь идет о том, что мы должны быстро отдавать контент с максимальной скоростью…Именно поэтому и предлагаем как альтернативу — работу с небольшими объемами данными для скорости.
не стоит городить много тригеров, а лучше объединять
если взять мой пример, увеличение счетчика комментариев и добавление записи в ленту новостей лучше разместить в одном триггере
Пока не будет идеального инструмента по отслеживания всех триггеров, группировки их и т.п. не читая документацию поддерживать что либо сложно в любом случае.
Триггеры — спасители