По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Привет, сегодня расскажем что такое база данных и SQL. У современных баз данных куча нюансов - погнали разбираться. Представь - собираешь ты деньги на подарок корешу, и записываешь на бумажке, кто сколько скинул. Табличка с денежками организована, разделена по именам и сумме долга, и имеет удобную структуру - ну вот оно, это и есть база данных! Ага, теперь, перемещаемся в цифровое пространство и заводим целый эксель файл для этого дела. Стало удобнее, можно редактировать, сортировать и даже данные удалять! Круто! Но достаточно ли этого для роста этой базы данных? Нет. Со временем данных становится так много, что админам приходится связывать их друг с другом, а тут одним эксель файлом уже не обойтись. Представим, решили вы сделать свой аналог ютуба, как будете хранить инфу о пользователях? Список юзеров, там, каналы, кто на что подписан, лайки и вот это все. Сложить это все в одну таблицу? Будет неудобно и медленно работать. Очевидно, надо разделить сущности на несколько таблиц - юзеры, каналы и видосы: Теперь свяжем данные между собой и добавим информацию о том, кто создал канал, и на каком канале залили видео. Ага, получились связанные таблицы. Связанные, от слова связь. А связь, это по-английски relation. А в айти тусовке они так и называются - реляционные базы данных, и это один самых распространенных типов баз данных. Еще есть нереляционные базы данных, о них подробнее можно прочитать в этой статье про NoSQL. Уф, ну теперь с данными стало гораздо удобнее работать, и мы избежали большой таблицы с повторяющимися строчками, разбив все на несколько табличек. Такой процесс еще называется нормализацией, когда мы избавляемся от избыточных данных. Ну и как раз для этого мы ввели в каждой таблице специальное поле - ID, которое идентифицирует каждую запись. Этот айди называется Primary Key, он же “первичный ключ”. А в таблице которая будет на него ссылаться, он будет называться Foreign Key, или по-русски “внешний ключ”. Нырнем в детали и поговорим про типы связей между таблицами. Первый тип называется “Один-ко-многим” или “многие-к-одному” (One-to-Many или Many-to-One). В нашем примере, у каждого видео может быть только один канал, где оно выложено, но на одном канале может быть много видео, поэтому в двух последних строках ID канала у нас повторяется, верно? Отношения «один-ко-многим» также можно рассматривать как отношения «многие-к-одному», в зависимости от того, с какой стороны вы на это смотрите. Второй тип связей называется “один-к-одному” (One-to-One) - классические табличные отношения. Вообще, это редко используемый тип связи, обычно его делают для безопасности. Это как если на нашем аналоге ютуба, мы разрешили бы создавать только один канал одному пользователю и в таблице с каналами ID создателя не могло повторяться. Такое себе, согласен? В таком случае вообще можно было бы обойтись и одной таблицей. Ну и третий тип связей, это “многие ко многим” (Many-to-many). Это когда у нас появляется промежуточная таблица связей, которая как бы соединяет два отношения “один ко многим”, которые мы обсудили в начале разбора типов связей. Давайте сделаем таблицу с лайками балалайками, где будем хранить ID пользователей и ID видео, к которым они поставили лайк: А вот так они связан: каждый пользователь может поставить лайк каждому видео. Теперь вопрос - а где все это хранить? Не в экселе же. И тут на сцену выходит термин СУБД, она же система управления базами данных - это программа, которая позволяет создавать, редактировать и администрировать реляционную базу. Ну и для управления всей этой петрушкой используется язык структурированных запросов, SQL (Structured Query Language) эскюэль или сиквел, как иногда его называют за рубежом. Он очень простой и понятный, вот смотри - чтобы найти названия всех видео с одного канала, нам нужно выполнить следующий запрос: SELECT name FROM videos WHERE channel_id = 201 То есть мы буквально говорим: выбери (SELECT) имена из (FROM) таблицы видео, где (WHERE) айдишник (ID) канала равен 201. Если вы хотите взять данные из нескольких таблиц и объединить результат, то нужно использовать в запрос параметр JOIN (от английского соединить). Вот такая упрощающая жизнь админам аналогия с разговорным языком. Так, SQL конечно позволяет добавлять, удалять и изменять данные и сами таблицы. Но важно не забывать про схему базы данных (Database schema), которая служит для описания структуры таблицы, ее полей и ограничений. Прикол в том, что если вам потребуется добавить или убрать столбец в таблице, то это изменение коснется вообще всех данных в таблице, таким образом если мы добавляем новый столбец, то он теперь будет присутствовать в каждой строке. Окей, а для чего вообще нужны ограничения? Для целостности твоих данных. Помнишь мы рассказали про первичный и внешний ключ? Так вот, благодаря им мы можем удостовериться, что в таблицу не попадет запись, которая ссылается на несуществующий айдишник. Или различные ограничения полей, которые не дадут записать дублирующие или пустые данные в нашу базу (Not NULL и Unique). И еще: транзакции. Эта штука, которая позволяет как бы склеить несколько SQL запросов в один. Ну вот представь такую задачку: вставить данные в первую таблицу, а во второй указать ID вставленной записи. Если ты делаешь это без использования транзакций, а во время второго этапа у тебя отвалится интернет, то первая запись попадет в базу, а вторая нет. Ага, появляется интернет, и ты с улыбкой на лице идешь снова выполнить эти запросы, только на этот раз получишь ошибку, что такая запись уже есть, ибо первая то уже в базе! А в случае использования транзакций, при получении ошибки, мы откатимся до того момента, который был до начала транзакции. А еще все эти радости помогают реляционным БД (базам данных) соответствовать так называемым требованиям ACID, которые нужны для сохранности данных - это очень важно в банковской отрасли, или любой другой, где целостность и сохранность данных супер важны. Давай разберемся с аббревиатурой: Atomicity — атомарность, или же проще говоря, непрерывность: это как раз про транзакции, которые мы обсудили только что. Либо операция выполняется целиком, либо никак. Consistency — согласованность: данные, записываемые в таблицу должны соответствовать всем выставленным правилам и ограничениям, помнишь, мы говорили про первичный и внешний ключи, а также про уникальность? Isolation — изолированность: если вы гоняете тонну транзакций одновременно, они не должны пересекаться и влиять друг на друга. Это очень важно для высоконагруженных баз Durability — надежность: если мы получили подтверждение, что транзакция выполнена, то значит наши данные в сохранности, даже если после этого произошел сбой. Ну и в качестве примеров таких баз данных назовем: Microsoft SQL Server, Oracle Database, MySQL, MariaDB и PostgreSQL.
img
Рост статичных веб-сайтов является доказательством того, что старые вещи возвращаются раз за разом. Сегодня как малые, так и крупные предприятия используют статические веб-сайты и свои расширенные преимущества. Статические веб-сайты вернулись, сильнее, чем когда-либо. Но в чем причина, которая стимулировала внезапный рост статических сайтов? Ну, тенденции в веб-разработке приходят и уходят, но одно остается постоянным всегда - желание иметь высокоэффективный сайт. Кроме того, поведение конечных пользователей быстро меняется, поскольку они ожидают быстрой загрузки страницы и более привлекательного опыта без места для разочарования. Чтобы удовлетворить этот спрос, веб-разработчики постоянно добавляют к веб-сайтам и приложениям больше функций. Но в процессе этого производительность веб-сайта оказывается под угрозой. Вот где статичные веб-сайты приходят на сцену! Что такое статичный веб-сайт? Существует распространенный миф, что статичные веб-сайты - это новая технология. На самом деле, статичные сайты – это самые первые сайты эпохи Интернета. Ранее для создания веб-сайта разработчики использовали чистый HTML, JavaScript и CSS без библиотек, плагинов или фреймворков. Проще говоря, контент на статичном веб-сайте остается одинаковым после каждого посещения, в отличие от динамического, где он меняется. Сервер создает эти статичные файлы и возвращает их браузерам. Эти веб-сайты могут извлекать данные практически из любого места, включая API, CMS и другие файлы данных. Такой веб-сайт отбрасывает ненужные сложности и в основном фокусируется на повышении эффективности и производительности. Она не опирается на базы данных; вместо этого он включает базовые HTML, JavaScript и CSS для создания невесомых бизнес-профилей и целевых страниц. В результате это помогает избавиться от долгих загрузок и раздражающих задержек. Таким образом, разработчики могут создавать быстрые, надежные и эффективные приложения, предлагая пользователям хорошие впечатления от работы на вашем сайте с меньшим временем разработки. Какие плюсы использования статичных веб-сайтов? Скорость Так как отсутствуют бэкэнд система, запросы клиент-сервер или запросы к базам данных, связанных с доставкой статического веб-сайта, такие сайты демонстрирует высочайшую производительность, поскольку его серверы всегда готовы к HTML-выводам. Кроме того, он может включать в себя функцию кэширования для устранения задержек. Безопасность Из-за отсутствия базы данных, а также подключаемых модулей и расширений статичные веб-сайты предлагают гораздо большую безопасность, чем динамический веб-сайт. Таким образом, вы избежите фишинговых кампаний, онлайн-отслеживаний, вредоносных программ или любой потери данных. Расширяемость Масштабирование статичных веб-сайтов относительно проще, в то время как сложные приложение более стабильны. Ввиду статичности файлов уменьшается нагрузка на серверы, а те легко справляются с обработкой огромного трафика. Хостинг и доступность Базовые HTML файлы требуют меньше места, что упрощает размещение этих веб-сайтов. Можно сократить расходы, направляя ресурсы на интеграцию автоматизированных сборок или Git для включения модификаций в систему. Звучит круто? Если ответ утвердительный, давайте выясним лучшие платформы, где можно разместить статичный веб-сайт, чтобы начать использовать его преимущества. 1. Netlify С помощью Netlify можно публиковать веб-проекты из репозиториев Git без сложных настроек и навыков обслуживания сервера. Поддерживается автоматизация процессов с помощью конвейера CI/CD для разработчиков веб-сайтов. Также есть возможность предварительного просмотра всего сайта, чтобы увидеть, как будет выглядеть веб-сайт, прежде чем публиковать его. Развернув статичный веб-сайт в глобальной сети CDN с несколькими облаками – Edge, вы получите хорошую производительность. Netlify поддерживает множество сторонних приложений и инструментов, включая такие надстройки, как Analytics, Identity, Forms и база данных Fauna. Netifly предоставляет удобные инструменты для автоматизации рабочих процессов, в том числе с помощью Atomic можно упростить развертывание новых сайтов, можно делать неограниченное количество снимков состояния и откатывать до них, можно назначать пользовательские заголовки, управлять DNS, перенаправлением и правилам прокси. Netlify размещает веб-сайт в отказоустойчивой глобальной сети доставки приложений для непрерывного и быстрого обслуживания веб-страниц. Можно также управлять зонами DNS с помощью их панели мониторинга. Автоматического HTTPS обеспечивает безопасность сайта, так как Netlify предлагает сертификат TLS бесплатно. Она обеспечивает расширенные функции, управляемые API, без сложных интеграций. Он предлагает шлюз API, управление доступом к данным на основе JWT, прокси-заголовки для аутентификации, сохраненные переменные и вебхуки. Благодаря Netlify Analytics можно получить подробную информацию о посетителях веб-сайта, источниках, просмотрах страниц и т.д. Также можно использовать функции AWS Lambda, управлять подписями, восстановлением паролей, входами в систему и т. д. без развертывания службы аутентификации. Управление отправками и формами без внедрения JavaScript или дополнительных кодов. Netlify Large Media позволяет управлять большими ресурсами и контролем версий файлов независимо от их размера. 2. Google Cloud Storage Высокая безопасность и масштабируемость платформы Google Cloud расширяет возможности компаний любого размера, от индивидуальных разработчиков до крупных предприятий. Возможность управления жизненным циклом объектов (Object Lifecycle Management OLM), которое можно использовать для настройки автоматического перехода всех данных на более недорогие хранилища. Можно легко устанавливать критерии для данных и управлять ими. Google Cloud включает в себя растущий список глобальных центров обработки данных с достаточно большим количеством вариантов автоматического резервирования. Можно выбрать расположение и способ хранения данных, чтобы оптимизировать веб-сайт для быстрого реагирования и создать полный план аварийного восстановления. С помощью класса хранения можно определить модель ценообразования, а также доступность, применимую к хранению данных. Вы можете выбрать из четырех возможных вариантов: Стандарт Nearline - один раз в месяц Coldline - раз в квартал Архивирование один раз в год Google Cloud предлагает управление версиями объектов, которое позволяет хранить копии объектов в случае их перезаписи или удаления. Можно определить периоды хранения данных перед безвозвратным удалением. Можно даже прикрепить объект, чтобы предотвратить его удаление. Шифрование и хранение объектных данных с помощью ключей шифрования, хранящихся в службе управления облачными ключами. Можно отключить ACL объектов для равномерного управления доступом к ресурсам в Google Cloud. Функция Bucket Lock включена для настройки политик хранения данных. Отправка уведомлений при создании, удалении или обновлении объектов. Ведение журналов доступа к данным и активности, и управление разрешениями доступа с помощью облачного управления удостоверениями и доступом (IAM). Google Cloud предлагает интегрированные репозитории для машинного обучения и аналитики. Альтернативы облачным хранилищам Google: Amazon S3 Amazon S3 включает прямые функции управления, чтобы позволить Вам организовать и настроить данные. Он предназначен для обеспечения высокой долговечности и хранения данных для огромного числа приложений. Amazon S3 может создать копии объекта, предлагает доступные тарифы для мест хранения, обладает возможностями аудита и утверждает, что соблюдает строгие меры безопасности как собственные в виде S3 Block Public Access, так и известные стандарты соответствия PCI-DSS, HITECH/HIPAA, FISMA, и т.д. Vultr Vultr поддерживает гибкую интеграцию через S3 API и предоставляет масштабируемому по требованию архитектуру, на которую вы можете полагаться. Она использует кэширование NVMe для обеспечения сверхпроизводительности и постоянной доступности данных. Можно также хранить статические данные мультимедиа, такие как изображения, видео и аудио. 3. Surge Surge предоставляет разработчику простой путь для развертывания проектов на высококачественном CDN через Grunt, NPM и Gulp. С каждым проектом можно использовать поддержку настраиваемого домена, поддержку pushState, бесплатную сертификацию SSL для доменов Surge, пользовательские страницы ошибок 404, развертывание CLI без ограничений, интеграцию с цепью инструментов Grunt и перекрестную поддержку ресурсов. Surge интегрируется с инструментом сборки, который используется для упрощения развертывания. Такие инструменты включают плагин Grunt, плагин Gulp, скрипт npm, хуки Git, Jekyll, Node.js, статические генераторы сайтов, службы CI и другие инструменты автоматического развертывания. Пригласите своих коллег и сотрудников. Все, что вам нужно для публикации содержимого на вашем веб-сайте – это ввести одну команду. 4. Render Легко разворачивайте статичный сайт в Render. Просто привяжите GitLab или репозиторий GitHub, и пусть он создаст ваш веб-сайт и обслуживает его на глобальном CDN. Лучше всего то, что статичные сайты с трафиком до 100 ГБ в месяц на Render можно размещать совершенно бесплатно. После превышения данного лимита за каждый гигабайт придется платить $0,10 в месяц. Render предлагает автоматическое и непрерывное развертывание и превентивное аннулирование кэша. Можно бесплатно присоединять к проекту сотрудников, чтобы получить их помощь в управлении сайтом. Render предлагает функцию Pull Request Preview, которая позволяет автоматически тестировать и просматривать введенные изменения перед публикацией. Хостинг предоставляет подробные графики пропускной способности, встроенную поддержку HTTP/2 для повышения скорости загрузки страниц, возможности перезаписи и перенаправления, поэтому для повышения производительности и безопасности не требуется писать дополнительный код и пользовательские заголовки HTTP. Для повышения производительности Render предлагает автоматическое сжатие Brotli, которое уменьшает размеры страниц и ускоряет работу сайтов. Render также включает автоматические перенаправления с HTTP на HTTPS, а также неограниченное количество пользовательских доменов. Помимо поддержки простых HTML/JavaScript/CSS сайтов, он предлагает мощные генераторы сайтов, такие как Create React Application, Jekyll, Vue.js, Gatsby, Hugo, Next.js и Docusaurus. Его глобальная сеть CDN невероятно быстрая, безопасная и надежная, и они также кэшируют весь ваш контент по всему миру, чтобы обеспечить наилучшие возможности для пользователей. 5. GitHub Pages Отдельные разработчики и желающие разместить статичные веб-сайты и развернуть коды онлайн могут использовать GitHub бесплатно. Добавить настраиваемый домен просто: для этого достаточно включить файл CNAM в свою учетную запись. Для создания статичного кода можно создать новый репозиторий из панели управления учетными записями и развернуть его с помощью поддомена, чтобы протестировать его. GitHub предоставляет вам один веб-сайт для каждой учетной записи GitHub, а также организацию вместе с неограниченными сайтами проектов. 6. Firebase Хотите статический хостинг сайта производственного уровня? Firebase - хороший вариант! В дополнение к размещению сайта, вы можете использовать его базу данных в реальном времени вместе с хранилищем файлов. Он предлагает бесплатный SSL сертификат и индивидуальный домен, даже в бесплатном тарифном плане. Однако для увеличения пропускной способности и объема хранилища можно купить платную версию. С помощью Firebase можно развернуть не только личный веб-сайт, но и одностраничное веб-приложение, прогрессивное веб-приложение и целевую страницу мобильного приложения без проблем. Не имеет значения, откуда пользователь обращается к вашему сайту; Firebase обеспечивает высокую производительность с помощью твердотельных накопителей на эффективных CDN. Вы получаете автоматически настроенный SSL абсолютно бесплатно для каждого сайта. Пользователи также могут подключать свои домены без нудной проверки. Развертывание сайта также возможно с помощью одной команды, и можно выполнить откат к предыдущей версии или просмотреть историю развертываний через консоль Firebase. 7. Vercel Платформа Vercel, которую можно назвать платформой все в одном, предлагает развертывание JAMStack и Static веб-сайтов. Она не требует настройки и работает с любым типом веб-инфраструктуры. С каждым сайтом вы получаете предварительный URL-адрес, которым вы можете поделиться со своей группой для совместной работы. Vercel обеспечивает высочайшую производительность сайта благодаря масштабируемым и упрощенным развертываниям. Просто перейдите в Git, чтобы оживить ваш сайт. Он поддерживает популярные фронтэнд-фреймворки, такие как Next.js, Vue.js, React, Angular, Gatsby, Hugo, Nuxt, Ember и Svelte. На данной платформе можно запускать мгновенные тесты для каждого развертывания, а затем выпускать их с полной уверенностью. Это облегчает интеграцию с такими поставщиками Git, как GitHub, Bitbucket и GitLab. Кроме того, Vercel предлагает динамическое восстановление сайта с помощью развертываемых хуков, что удобно при работе с CMS. Можно создать одну страницу за один раз, поэтому не нужно перестраивать весь сайт. Vercel благодаря своим сверхбыстрым глобальным CDN, расположенным в 70 городах, гарантирует доступность в 99,99%. Заключение Статичные сайты еще не забыты. Особенно сегодня, когда угрозы в Интернете вызывают наибольшую обеспокоенность во всем мире, статичные сайты становятся еще сильнее, чем когда-либо, чтобы снова управлять Интернетом и поддерживать ваш бизнес.
img
Так как многие используют у себя в качестве платформы виртуализации Hyper-V, сегодня мы решили немного рассказать о том, как "правильно" использовать данную платформу – в плане сохранения ресурсов и просто с точки зрения логики. Рекомендации описанные ниже вполне смогут сохранить вам немного драгоценных вычислительных ресурсов. Поэтому ниже вы найдете 14 хинтов, которые могут помочь сохранить ресурсы. Не плодите виртуальные сущности! Первый хинт, и достаточно очевидный -не создавайте ненужных виртуальных машин и не оставляйте их запущенными! Процесс VMMS.exe постоянно проверяет статус всех виртуальных машин, в том числе и без каких-либо активных процессов, помимо ОС запущенных на них. Таким образом, на данный процесс тратятся дорогие ресурсы. Далее, задумайтесь, сколько виртуальных коммутаторов у вас создано – подумайте, в каком случае вы можете просто использовать VLAN или другие механизмы сегментирования для логического разделения сети между виртуальными машинами. Причина такая же как и в предыдущем случае – VMMS.exe постоянно проверяет состояние виртуальных свитчей и тратит ресурсы! Настройте антивирус так, чтобы он не проверял Hyper-V процессы и директории, так как такое ПО как антивирус постоянно производит I/O операции для файлов, и, соответственно, может отобрать ресурс у процессов, выполняемых между виртуальными машинами. То есть: Процессы Hyper-V - VMMS.exe и VMWP.exe Папки с виртуальными машинами - файлы с виртуальными жесткими дисками и файлы конфигурации Папки со снэпшотами-V - снэпшоты и чекпоинты Используйте официально поддерживаемы гостевые ОС – будет быстрее! Старайтесь использовать только те гостевые системы, на которые возможно установить Integration Services – дополнения, которые включают в себя VMBUS и VSP/VSC компоненты, используется для значительного улучшения связи между Windows, на котором установлен Hyper-V и виртуальными машинами. Список поддерживаемых систем можно найти по ссылке: https://docs.microsoft.com Кроме того, старайтесь хранить виртуальные машины, которые не поддерживают установку Integration Services на отдельном сервере Hyper-V. Если это невозможно – используйте отдельный виртуальный свитч. Дело в том, что они используют совершенно разные механизмы общения с оригинальной системой – коммуникации через VMBUS и коммуникации через эмуляцию. Эмуляция быстрее, но возможна только при установленных Integration Services. Старайтесь использовать виртуальные машины Generation Type 2 (второго поколения), которые загружаются с помощью SCSI контроллера, вместо IDE (SCSI быстрее). Кроме того, машины второго поколения используют VMBUS и VSP/VSC архитектуру на boot уровне, что улучшает общую производительность. Внимательнее относитесь к расположению виртуальных машин! Не храните виртуальные машины на одном жестком диске вместе с системными файлами и файлами гипервизора – опять же из-за того, что ОС занимает свою долю в операциях ввода-ввывода, и у жесткого диска легко не может хватить производительности для задач, выполняемых на виртуальных машинах. Соответственно, всегда изменяйте папку хранения виртуальных машин по умолчанию на что-то иное. Изначально, путь выглядит так:C:ProgramDataWindowsHyper-VVirtual Machines Если возможно – используйте для каждой виртуальной машины разные тома. Наличие нескольких виртуальных машин на одном логическом томе также повышает количество производимых I/O операций. Регулярно дефрагментируйте жесткий диск перед созданием виртуального жесткого диска и просто проводите дефрагментацию разделов, где хранятся виртуальные машины. Старайтесь использовать SCSi контроллеры для виртуальных жестких дисков – выиграйте по скорости. Для приложений вроде SQL лучше хранить логи и сами данные на разных SCSi разделах При создании виртуальной машины лучше используйте виртуальные жесткие диски фиксированного размера – это так же даст прирост производительности. В общем о ресурсах В то же время, рекомендуется использовать динамически аллоцируемую оперативную память. Однако, для некоторых приложений также лучше будет использовать изначально большой объем фиксированной ОЗУ – но это применимо только к узкому ряду приложений, вроде Sharepoint. Старайтесь использовать Windows Server Core Operating System, так как там нет графической оболочки, система потребляет меньше ресурсов. Если же вы используете обычный Windows с обычным, всем очень хорошо знакомым GUI всегда закрывайте другие окна, приложения и так далее – все, что хотя бы теоретически может повлиять на производительность.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59