По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Такие большие, логически структурированные массивы, как базы данных, совершенно бессмысленны без систем управления реляционными данными (РСУБД). РСУБД – это программное решение, позволяющее взаимодействовать с базой данных (БД). Вы можете получать, добавлять или удалять данные, а также управлять доступом к хранимой информации.
На рынке существует множество программных вариантов, и большинство из них распространяется с открытым исходным кодом, то есть бесплатно. Самыми известными решениями для веб-серверов являются MySQL и PostgreSQL. Выбор одного из вариантов зависит от ваших требований к рабочей нагрузке и назначению БД.
В данной статье рассматриваются основные различия MySQL и PostgreSQL и приводится их подробное сравнение.
Краткий обзор MySQL и PostgreSQL
MySQL и PostgreSQL постоянно обновляются и улучшаются активным и изобретательным сообществом. Этот непрерывный процесс сокращает принципиальные отличия между двумя решениями.
Тем не менее, в них есть существенные различия, которые проявляются при развертывании с большой рабочей нагрузкой. Прежде, чем перейти к подробному анализу каждого решения, предлагаем ознакомиться с кратким сравнением систем.
MySQL
PostgreSQL
Предлагают как открытые, так и платные коммерческие версии.
Бесплатная, полностью с открытым кодом.
Очень быстрые и надежные.
Адаптивная и многофункциональная.
Делают акцент на скорости, а не следовании ключевым принципам SQL
Придерживается 160 из 179 обязательных пунктов ключевых принципов и стандартов SQL.
Идеальна для рабочих процессов в веб-решениях с интенсивным чтением данных.
Идеальна для сложных запросов и больших баз данных.
Темп разработки замедлился после того, как система стала частично проприетарным решением.
Активное и многочисленное сообщество постоянно разрабатывает новые функции.
MySQL возлагает функции безопасности на списки управления доступом (ACL).
В PostgreSQL есть встроенная поддержка SSL и возможность шифрования связи между клиентом и сервером.
Поддерживает управление параллельным доступом посредством многоверсионности (MVCC), но при условии, что оно поддерживается подсистемой хранения InnoDB
Встроенная реализация MVCC.
Стандартная репликация master-standby
Несколько вариантов репликации
Небольшая поддержка нереляционных функций
Поддержка нескольких нереляционных функций
Версия InnoDB совместима с ACID (атомарность, согласованность, изолированность, прочность)
Полная совместимость с ACID
Ограниченная поддержка расширяемости
Возможность добавления новых функций, типов, индексных типов и т.д.
По умолчанию добавлены геопространственные данные
Возможность реализации геопространственных данных через расширения
Ограниченная поддержка серверного программирования на нерасширяемом языке
PostgreSQL поддерживает самые популярные языки программирования
Поддерживает развертывание в контейнерах Docker
Поддерживает развертывание в контейнерах Docker
Сравнение производительности MySQL и PostgreSQL
Измерение производительности РСУБД во многом зависит от требований, предъявляемых к базе данных. В базовых примерах обе системы управления БД работают одинаково хорошо.
Производительность и скорость:
PostgreSQL создавался для выполнения сложных операций; он совместим с множеством платформ и языков
MQL не стремился следовать всем стандартам SQL, поэтому основной упор делается на скорость
Основной упор в PostgreSQL сделан на совместимости; система показала превосходные результаты при использовании в сложных запросах, анализе чтения/записи, а также управления большими базами данных. Важно помнить, что PostgreSQL может серьезно повлиять на производительность памяти, поскольку каждое новое клиентское подключение создает отдельные ветку процесса весом в 10 МБ.
MySQL ставил перед собой цель достичь максимальной скорости и простоты развертывания. Эта характеристика MySQL особенно полезна при простом обмене информации и рабочих процессах в веб-решениях с интенсивным чтением данных. Простота развертывания БД означает, что вы можете пользоваться MySQL для быстрого и горизонтального масштабирования данных.
Лицензия и поддержка сообщества
PostgreSQL – это бесплатное решение с полностью открытым исходным кодом. Лицензия Open Source означает, что исходный код находится в открытом доступе; кто угодно может его копировать, изменять и распространять.
Такая схема создала активное сообщество разработчиков, которое постоянно анализирует текущее состояние системы и разрабатывает новые, улучшенные решения.
MySQL доступна в бесплатном доступе с открытым кодом, а также в нескольких платных коммерческих версиях с проприетарной лицензией. Некоторые элементы и плагины доступны только в проприетарных версиях, что в итоге может приводить к дополнительным затратам.
Кроме того, люди жалуются, что процесс разработки слегка замедлился, поскольку после покупки компанией Oracle, MySQL перестал быть системой с полностью открытым кодом.
Соответствие SQL
Современные приложения и базы данных часто имеют распределенную архитектуру. Следование официальным стандартам и руководствам SQL упрощает обмен данными между различными БД и помогает им соответствовать строгим регуляторным требованиям (например, GDPR, PCI и ISO).
Соответствие SQL-стандартам:
MySQL сосредоточена на увеличении скорости и надежности. В итоге MySQL не до конца соответствует стандартам ISO
PostgreSQL придерживается большей части основных принципов и стандартов SQL; это портативная система, с которой легко интегрируются различные инструменты
PostgreSQL и MySQL: синтаксические отличия
MySQL и PostgreSQL основаны на одних и тех же стандартах SQL и активно пытаются следовать максимально возможному количеству требований. Так что синтаксис и команды в двух РСУБД практически одинаковы. Давайте рассмотрим несколько основных отличий, которые могут сказаться на управлении данными.
Синтаксис PostgreSQL
Синтаксис MySQL
Данные из таблицы чувствительны к регистру. WHERE Company = ‘Merion’ это не то же самое, что WHERE Company = ‘merion’
Данные не чувствительны к регистру. WHERE Company = ‘Merion’ – это то же самое, что и WHERE Company = ‘merion’
PostgreSQL допускает использование только одиночных кавычек: Company = ‘merion’
Поддерживает одиночные и двойные кавычки: Company = ‘merion’, равно как и Company = “merion”
Команды для даты и времени: CURDATE(), CURTIME(), EXTRACT()
Команды для даты и времени: CURRENT_DATE(), CURRENT_TIME(), EXTRACT()
Отличия в безопасности PostgreSQL и MySQL
Необходимость защиты баз данных в РСУБД от вредоносной активности привела к созданию множества инструментов, протоколов безопасности и процедур.
Главную функцию безопасности в MySQL выполняют списки управления доступом (ACL).
В PostgreSQL встроена поддержка SSL, а для настройки разрешений пользователей используется функция ROLE.
MySQL возлагает функцию безопасности на списки управления доступом (Access Control Lists - ACL), которые следят за всеми подключениями, запросами и другими операциями. Кроме того, предоставляется ограниченная поддержка подключений между MySQL-клиентами и серверами с SSL-шифрованием.
Например, в MySQL есть сценарий, который повышает безопасность вашей БД за счет настройки пароля для пользователя root. Этот же сценарий автоматически удаляет все стандартные тестовые базы данных из вашей системы. Кроме того, MySQL поддерживает управление пользователями и позволяет настраивать уровни доступа для каждого пользователя.
Для настройки разрешений пользователей PostgreSQL использует функцию ROLE. В ней есть встроенная поддержка SSL и шифрование обмена данными между клиентом и сервером. PostgreSQL также предлагает встроенное расширение под названием SE-PostgreSQL для настройки дополнительных элементов контроля доступа в соответствии с политикой безопасности SELinux.
Удобство для пользователей и универсальность интерфейса
Пользовательский интерфейс в PostgreSQL называется pgAdmin4. Он помогает начинающим пользователям выполнять сложные задачи и управлять базами данных. Основной акцент в PostgreSQL сделан на расширяемости, поэтому вы можете использовать pgAdmin4 для добавления новых типов данных, функций и типов индексов.
Графический пользовательский интерфейс в MySQL называется Workbench. Этот инструмент объединяет в себе разработку, управление, проектирование, создание и поддержание базы данных в единую интегрированную среду СУБД MySQL.
Языки программирования
Один из важнейших аспектов, которые необходимо учитывать при переходе на новую среду, заключается в том, как это повлияет на сотрудников из отдела разработки и эксплуатации. Чем больше языков программирования поддерживает сервер базы данных, тем легче разработчикам добавлять новые функции и улучшать уже существующие.
В этом плане PostgreSQL и MySQL поддерживает большое количество языков программирования.
PostgreSQL
MySQL
C++, .NET, Java, Delphi, Perl, Lua, Node.js, Python, PHP, R, D, Erlang, Go, Lisp
C, C++, Java, Perl, Delphi, Lua, Go, R, .NET, Node.js, Python, PHP, Erlang, Lisp, D
Параллельная обработка данных
Хорошо реализованный параллелизм позволяет многим людям из разных мест одновременно обращаться к БД и работать с ней без ограничений и угрозы противоречивости данных.
Когда базе данных с управлением параллельным доступом посредством многоверсионности (MVCC - multi-versioning concurrency control) необходимо обновить данные, она не перезаписывает оригинальную информацию. Вместо этого она создает более свежую версию файла и сохраняет ее предыдущую копию.
Это принципиально важный момент, если к вашим наборам данных одновременно должны обращаться многие подписчики. Если в системе отсутствует контроль параллельной обработки данных, то чтение из БД, пока другой процесс записывает в нее данные, приводит к несогласованности данных.
Встроенная реализация MVCC позволяет достичь высочайшего уровня параллелизма в PostgreSQ
MySQL тоже предлагает поддержку MVCC, но только если она поддерживается подсистемой хранилища InnoDB.
Репликация базы данных
Копирование данных из одного сервера БД в другую базу на другом сервере называется репликацией. При таком распределении информации группа пользователей сможет обращаться к новым данным, и это никак помешает работе других пользователей.
Одной из самых сложных задач в репликации БД является поддержание согласованности данных внутри распределенной системы. MySQL и PostgreSQL предлагают различные возможности для репликации БД.
PostgreSQL и MySQL поддерживают репликацию в виде master – standby (основной источник – резервная БД) и нескольких standby, а также предлагают ряд возможностей:
PostgreSQL:
логическая репликация;
потоковая репликация;
двунаправленная репликация.
MySQL:
репликация master – master;
master – standby, перенаправленная на один или несколько резервных серверов;
круговая репликация.
Заключение
PostgreSQL – это многофункциональная БД для обработки сложных запросов и больших баз данных. MySQL – это быстрое, надежное и популярное решение. MySQL относительно прост в установке и обслуживании. Функциональные возможности PostgreSQL и MySQL во многом схожи.
PostgreSQL отличается от MySQL по определенным рабочим нагрузкам. Данная статья поможет вам принять осмысленное решение с учетом всех достоинств той или иной РСУБД.
Компания Cisco сейчас, безусловно, является лидером среди производителей сетевого оборудования, однако немалую часть этого рынка занимает оборудование компаний Huawei и Juniper, в которых команды для CLI отличаются от команд в Cisco IOS. Поэтому, мы собрали в таблицы основные и наиболее часто используемые команды для траблшутинга у Cisco и привели их аналоги в Huawei и Juniper. Поэтому, если вы знакомы с системой IOS, то эта таблица поможет на начальных этапах освоиться в других ОС.
Список основных команд, конечно, шире, поэтому если мы забыли упомянуть какие-то команды, напишите их комментариях.
Cisco
Huawei
show
display
traceroute
tracert
configure terminal
system-view
exit
quit
end
return
no
undo
reload
reboot
erase
delete
hostname
sysname
enable
super
disable
super 0
write memory / copy running-config startup-config
save
show ip route
display ip routing-table
show flash
dir flash:
clear
reset
show logging
display logbuffer
write terminal / show run
display current-configuration
show startup
display saved-configuration
show tech
display diagnostic-information
show ip nat translation
display nat session
enable secret
super pass cipher
snmp-server
snmp-agent
router ospf
ospf
router rip
rip
router bgp
bgp
show ospf neighbours
display ospf peer
show interfaces
display interface
show version
display version
show history
display history-command
show access-list
display acl all
shop ip nat translations
display nat session all
show mac address-table
display mac-address
show spanning-tree
display stp
debug / no debug
debugging / undo debugging
Получается как-то так. А если сравнить команды Cisco и Juniper?
Cisco
Juniper
show run
show configuration
show history
show cli history
show running-config
show configuration
show ip route
show route
show ip interface brief
show interface terse
show controller
show interfaces intfc extensive
show tech-support
request support info
reload
request system reboot
clock set
set date
show ip bgp
show route protocol bgp
show ip bgp neighbors
show ip bgp neighbor
show ip bgp summary
show bgp summary
clear ip bgp
clear bgp neighbor
show ip ospf database
show ospf database
show ip ospf interface
show ospf interface
show ip ospf neighbor
show ospf neighbor
show ip traffic
show system statistic
show logging
show log
no
delete
Всем привет! Мы продолжаем рассказывать про маршрутизацию в Cisco Unified Communications Manager (CUCM) и сегодня речь пойдет о Time of Day Routing – распределении звонков по времени. Эта функция позволяет распределять звонки в зависимости от времени и дня недели. Например, это позволит запретить международные звонки в нерабочее время и выходные, а междугородные звонки направлять в это время по другому транку.
Time of Day Routing используется совместно с CSS и Partitions (статью про это можно прочить здесь), и механизмами маршрутизации такими как Route Pattern (статью можно найти тут) и Route List/Route Group (да, про это у нас тоже есть статья).
При работе в связке с Partitions мы указываем желаемый временной промежуток в Time Schedule, и связываем его с разделом Partition. В результате Partition будет активным только в то время, которое мы указали. В остальное время раздел будет оставаться ”невидимым”.
Управлять маршрутами в зависимости от времени можно создав несколько Partitions и выбрав их приоритет в списке CSS (Partition в начале списке имеет наибольший приоритет). Затем создать несколько Route Patterns и поместить их в разные Partitions.
Настройка
Начнем с настройки времени. Для этого переходим во вкладку Call Routing → Class of Control → Time Period и нажимаем Add New. Здесь указываем название для нашего интервала и время его начала и конца, временную зону, а также дни недели, по которым он будет повторяться.
После сохранения диапазона переходим к созданию Time Schedule. Переходим в Call Routing → Class of Control → Time Schedule и тут тоже нажимаем Add New. Сначала указываем название в поле Name, а затем после нажатия Save появляется поле Time Period Information. В поле Available Time Periods помещаем необходимые временные промежутки.
Далее переходим к настройке Partitions. Во вкладке Call Routing → Class of Control → Partition выбираем нужный Partition, либо создаем новый. Здесь в строке Time Schedule, выбираем график, который мы создали.
После этого помещаем Partitions в CSS, во вкладке Call Routing → Class of Control → Class of Control. Приоритет раздела зависит от его позиции в списке.
Затем применяем Partitions к Route Patterns, которые находятся во вкладке Call Routing → Route/Hunt → Route Pattern.
И теперь мы можем распределять звонки в нашей системе по времени.