Mysql что такое и зачем это нужно: MySQL — это просто! | MySQL

Содержание

Базы данных MySQL: что такое и как с ними работать

  1. Что такое MySQL?
  2. Как создать базу данных?
  3. Настройка и управление
  4. Логин\пароль: где узнать и как восстановить?
  5. Экспорт MySQL (Dump базы данных)
  6. Импорт MySQL
  7. Ограничения БД
  8. Ошибки

Что такое MySQL?

MySQL представляет собой одну из самых распространенных сегодня систем управления базами данных в сети Интернет. Данная система используется для работы с достаточно большими объемами информации. Однако MySQL идеально подходит как для небольших, так и для крупных интернет-проектов. Немаловажной характеристикой системы является ее бесплатность.

Как работают базы данных MySQL?

Когда пользователь пытается открыть страницу сайта (page.php), то перед тем как он увидит сайт, на сервере хостинг-провайдера произойдет следующее:

  1. Выполнится PHP-код из файла page.php
  2. Из базы данных (database.sql) будет считан весь текстовый контент страницы
  3. Из файла стилей (style.css) будут считаны стили (что, где и на каком месте находится, шрифты, размеры и т.д.)
  4. Пользователю будет показана страница которую он хотел увидеть.

Также нужно понимать, что пользователь может оставлять комментарии на странице, добавлять посты (статьи) и многое другое. В это время, все изменения сохраняются в базу данных, и когда страница будет запрошена в следующий раз — она будет уже обновленной (т.к. из базы данных считывается обновленная информация).

Основные преимущества MySQL

Надежность, высокая скорость и гибкость – основные качества MySQL. Работа с данной системой не вызывает больших сложностей, а поддержка сервера MySQL автоматически включена в поставку РНР. MySQL предоставляется на условиях общей лицензии GNU (GNU Public License, GPL).

Ранее для долговременного и безопасного хранения информации использовали файлы: в них записывалось несколько строчек, которые затем извлекались для последующей работы. Проблема длительного хранения информации достаточно актуальна в процессе программирования интернет-приложений. К примеру, когда речь идет о подсчете числа посетителей сайта в счетчике, хранении сообщений в форуме, а если требуется удаленное управление данными на са

MySQL шпаргалки / Хабр

Часто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.

Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.

Работа с бекапами

Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql

Создаём структуру базы без данных
mysqldump --no-data - u USER -pPASSWORD DATABASE > /path/to/file/schema.sql

Если нужно сделать дамп только одной или нескольких таблиц
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql

Создаём бекап и сразу его архивируем
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz

Создание бекапа с указанием его даты
mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`

Заливаем бекап в базу данных
mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql

Заливаем архив бекапа в базу

gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
или так
zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE

Создаём новую базу данных
mysqladmin -u USER -pPASSWORD create NEWDATABASE

Удобно использовать бекап с дополнительными опциями -Q -c -e, т.е.
mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql, где:

  • -Q оборачивает имена обратными кавычками
  • -c делает полную вставку, включая имена колонок
  • -e делает расширенную вставку. Итоговый файл получается меньше и делается он чуть быстрее

Для просмотра списка баз данных можно использовать команду:
mysqlshow -u USER -pPASSWORD

А так же можно посмотреть список таблиц базы:
mysqlshow -u USER -pPASSWORD DATABASE

Для таблиц InnoDB надо добавлять —single-transaction, это гарантирует целостность данных бекапа.
Для таблиц MyISAN это не актуально, ибо они не поддерживают транзакционность.

Подробнее

Общие факты

  • Полезно под каждую базу на боевом сервере создавать своего пользователя
  • Кодировка базы может быть любой, если она UTF8
  • В большинстве случаев лучше использовать движок InnoDB
  • В php лучше забыть про сильно устаревшее расширение mysql и по-возможности использовать pdo или mysqli
  • Новую копию MySQL всегда можно настроить и оптимизировать
  • Без особой нужды не стоит открывать MySQL наружу. Вместо этого можно сделать проброс портов
    ssh -fNL LOCAL_PORT:localhost:3306 REMOTE_USER@REMOTE_HOST
Работа с данными
Числа

  • На 32-битных системах практически нет смысла ставить для типа INTEGER свойство UNSIGNED, так как такие большие числа в php не поддерживаются.
    На 64-битных системах, php поддерживает большие числа, вплоть до MySQL BIGINT со знаком.
  • Связанные таблицы («Foreign keys») должны иметь полное сходство по структуре ключей. Т.е. если у нас на одной таблице для поля указано «INTEGER UNSIGNED DEFAULT 0 NOT NULL» то и на другой должно быть указано аналогично
  • Для хранения булевых значений, нужно использовать TINYINT(1)
  • А деньги лучше хранить в DECIMAL(10, 2), где первое число обозначает количество всех знаков, включая запятую, а второе — количество знаков после запятой. Итого, у нас получится что DECIMAL(10,2) может сохранить 9999999,99
Строки

  • В старых версиях (до 5.0.3) VARCHAR была ограничена 255 символами, но сейчас можно указывать до 65535 символов
  • Помните, что тип TEXT ограничен только 64 килобитами, поэтому что бы сохранять «Войну и Мир» пользуйтесь «LONGTEXT»
  • Самая правильная кодировка для вашей БД UTF8
Даты

Не забывайте, что
  • DATE, TIME, DATETIME — выводятся в виде строк, поэтому поиск и сравнение дат происходит через преобразование
  • TIMESTAMP — хранится в виде UNIX_TIMESTAMP, и можно указать автоматически обновлять колонку
  • Сравнивая типы данных DATETIME и TIMESTAMP, не забывайте делать преобразование типов, например:
    SELECT * FROM table WHERE `datetime` = DATE(`timestamp`)
Перечисления

  • Для перечислений правильно использовать тип ENUM
  • Правильно пишется так: ENUM(‘мама’, ‘мыла’, ‘раму’)
  • Можно ставить значение по-умолчанию, как и для любой строки
  • В базе поле с перечислением хранится как число, поэтому скорость работы — потрясающе высокая
  • Количество перечислений ~ 65 тысяч

dev.mysql.com/doc/refman/4.1/en/storage-requirements.html
help.scibit.com/mascon/masconMySQL_Field_Types.html

Отладка
  • Если запросы тормозят, то можно включить лог для медленных запросов в /etc/mysql/my.cnf
  • А потом оптимизировать запросы через EXPLAIN
  • И наблюдать за запросами удобно через программу mytop

Пожалуйста, сообщите мне, если вы заметили неточность или есть желание поделиться советом или шпаргалкой.

MySQL | Введение

Что такое MySQL. Установка сервера

Последнее обновление: 04.05.2018

MySQL представляет систему управления реляционными базами данных (СУБД). На сегодняшний день это одна из самых популярных систем управления базами данных.

Изначальным разработчиком данной СУБД была шведская компания MySQL AB. В 1995 году она выпустила первый релиз MySQL. В 2008 году компания MySQL AB была куплена компание Sun Microsystems, а в 2010 году уже компания Oracle поглотила Sun и тем самым приобрела права на торговую марку MySQL. Поэтому MySQL на сеголняшней день развивается под эгидой Oracle.

Текущей актуальной версией СУДБ является версия 8.0, которая вышла в январе 2018 года.

MySQL обладает кроссплатформенностью, имеются дистрибутивы под самые различные ОС, в том числе наиболее популярные версии Linux, Windows, MacOS.

Официальный сайт проекта: https://www.mysql.com/.

Установка MySQL

Для установки MySQL загрузим дистрибутив по адресу http://dev.mysql.com/downloads/mysql/ и выберем нужную версию.

После выбора версии нажмем на кнопку «Go to Download Page», и нас перенаправит на страницу загрузки дистрибутива. Здесь можно выбрать либо онлайн-загрузчик, либо полный пакет инсталятора. Можно выбрать любой:

После загрузки запустим инсталлятор. Вначале нам отобразится окно с лицензионным соглашением, которое нужно принять:

После принятия лицензионного соглашения будет предложено выбрать тип установки. Выберем тип Full и нажмем на кнопку Next:

Далее на следующем этапе может отобразится следующее окно, если какие-то дополнительные компоненты отсутствуют в системе:

В данном случае программа установки показывает, что у меня не установлен Python 2.7. Поскольку эти компоненты не важны, нажимаем Next.

Затем на этапе установки инсталлятор отобразит весь список устанавливаемых компонентов. У меня он выглядит так:

Чтобы выполнить установку всех компонентов, нажмем кнопку Execute.

После того, как все компоненты будут установлены, нажмем кнопку Next.

Далее надо будет указать тип сервера. Выберем настройку по умолчанию Standalone MySQL Server / Classic MySQL Replication

Далее будет предложено установить ряд конфигурационных настроек сервера MySQL. Оставим настройки соединения и порта по умолчанию:

На следующем шаге будет предложено установить метод аутентификации. Оставим настройки по умолчанию:

Затем на следующем окне прогаммы установки укажем какой-нибудь пароль, и запомним его, так как он потом потребуется при подключении к серверу MySQL:

Следующий набор конфигураций, который также оставим по умолчанию, указывает, что сервер будет запускаться в качестве службы Windows при запуске операционной системы:

Следующее окно позволяет настроить дополнительные плагины и расширения. Начиная с версии 5.7 в MySQL доступен X Protocol, который представляет новый способ взаимодействия с хранилищем данных. Эту опцию необязательно отмечать. В данном случае я ее отмечу:

И на следующем экране необходимо применить все ранее установленные конфигурационные настройки, нажав на кнопку Execute:

После применения конфигурационных настроек сервер MySQL будет полностью установлен и сконфигурирован, и мы сможем с ним работать.

Краткий обзор движков таблиц MySQL / Хабр

Цель этой статьи — дать краткий, очень сжатый обзор движков, для того, чтобы статьей можно было пользоваться при выборе движка на этапе проектирования \ создания \ оптимизации таблицы. Предполагается, что читатель знает суть вопроса по крайней мере поверхностно и способен сам отыскать всю дополнительную информацию (вопросы в комментах можно задавать всегда 🙂 )

MyISAM

  • транзакций нет
  • макс. диск: 256Тб
  • блокировка таблица
  • полнотекстовый поиск
  • работа в кластере: нет
  • поддержание целостности, внешние ключи: нет
  • репликация: да
  • макс. индексов: 64
  • макс. записей: 2^32
  • макс. длина ключа: 1000 байт
  • ключи занимают место на диске до (макс.): (key_length+4)/0.67
  • чувствительные к «падению» сервера, сложно восстанавливать
  • при отсутствии «дырок» (gaps) — вставки не конкурентные (блокировок не происходит)
  • возможно хранить файлы данных и индексов на разных устройствах
  • каждый столбец может иметь свою кодировку
  • макс. сумма длин VARCHAR и CHAR: 64к

Static (Fixed-length) формат таблиц

  • автоматически, если нет VARCHAR, VARBINARY, BLOB, TEXT столбцов
  • быстрее, безопаснее (устойчивее), лучше кешируется, требует больше места на диске
  • если указать принудительно, VARCHAR и CHAR заполняются пробелами, VARBINARY — нулями

Dynamic length формат таблиц

  • все строки длиной до 4 — VARCHAR
  • пустые строки и ноль (0) не занимают места на диске (NULL это не ноль)
  • запись (строка) фрагментируется автоматически при апдейтах (нужно запускать OPTIMIZE TABLE для дефрагментации)
  • сложнее восстановить при сбоях

Compressed

  • создается утилитой myisampack
  • read-only
  • рекомендуется для очень медленных носителей
  • может быть и fixed-length и dynamic-length
  • посмотрите в сторону Archive table engine

Советы:
  • говорят, что MyISAM таблицы обязательно «ломаются» рано или поздно, так что будте готовы 😉
  • не убивайте сервер во время записи
  • не изменяйте таблицы несколькими серверами одновременно
  • не изменяйте таблицы утилитой и сервером одновременно

Рекомендации: справочники
InnoDB

  • макс. диск: 64Тб
  • полная поддержка транзакций (4 уровня изоляции)
  • блокировка записи (не таблицы), два вида блокировок (SHARED, EXCLUSIVE)
  • полнотекстовый индекс: нет
  • безопасная для транзакций
  • индексы кластеризуются для «типичных запросов»
  • поддержка целостности (внешние ключи)
  • может использоваться на ОС с ограниченным размером файла
  • множество настроек для оптимизации
  • позволяет использовать Raw Disk для таблиц в обход ФС
  • по умолчанию включен AUTOCOMMIT (SET autocommit=1)
  • автоматически детектит дэдлоки (deadlocks)

Движок был разработан специально для больших таблиц. Разработчики заявляют, что InnoDB — самый быстрый из всех известных движков для БД основанных на дисках (множественные тесты это подтверждают)

Советы:

  • SELECT (*) FROM table работает гораздо медленнее, чем MyISAM — создавайте триггеры если нужно
  • бэкап простым копирование файлов невозможен
  • mysqldump работает медленно, для бэкапа используйте InnodDb Hot Backup
  • следите за индексами, выгода InnoDB теряется, если для запросов нет индексов

Рекомендации: высоконагруженные сайты, финансовые транзакции
MERGE

  • Используется для объединения одинаковых таблиц в одну
  • таблицы должны иметь идентичную структуру
  • порядок столбцов должен совпадать
  • DROP не удаляет исходных таблиц
  • таблицы могут быть в другой базе данных
  • можно использовать для алиасов (для одной таблицы)
  • нельзя пользоваться FULLTEXT search
  • нельзя смешивать временные и не временные таблицы
  • медленная при чтении по ключу
  • REPLACE не работает
  • не отслеживаются изменения в структуре исходных таблиц (таблица будет поломана)

Рекомендации: «удобная» (ре)организация таблиц
HEAP (MEMORY)

  • транзакций нет
  • блокировка таблицы
  • репликация: да
  • макс. длина ключа: 500 байт
  • все данные теряются при остановке сервера (сама таблица остаётся)
  • формат хранения: всегда fixed-length row
  • память не высвобождается при удалении записи (используется для вставки новых)

Советы:

большие таблицы «свопяться» на диск и выигрыш теряется

Рекомендации: Локальные вычисления, временные данные

ARCHIVE

  • макс. диск: нет ограничения
  • блокировка записи
  • не работает DELETE, REPLACE, UPDATE, ORDER BY, тип BLOB
  • INSERT буферизируется и «сливается» с большой задержкой
  • очень медленный SELECT

Рекомендации: логирование операций (аудит, статистические данные, счетчики)
CSV

  • хранит таблицы в CSV формате
  • позволяет редактировать таблицы внешними приложениями
  • плохо документирован, есть открытые баги
FEDERATED

Представляет собой «прозрачное» подключение к другому серверу (не репликация). Есть множество ограничений, планируется возможность подключения к отличным от MySQL серверам.

BLACKHOLE

  • данные идут «вникуда»
  • двоичные логи пишуться

Рекомендации: оптимизация репликации (мастер-сервер не пишет данные на диск)
Тренды, MySQL 6.0

  • Maria — «улучшенный MyISAM»
  • Falcon — «улучшенный InnoDb», улучшенная производительность, для Web серверов

Ссылки:

MySQL Documentation, Chapter 13. Storage Engines
MySQL Storage Engines by Mike Peters

простыми словами, где используется SQL

SQL — что это такое простым языком

SQLпростыми словами, это язык программирования структурированных запросов (SQL, Structured Query Language), который используется в качестве эффективного способа сохранения данных, поиска их частей, обновления, извлечения из базы и удаления.

Произносится как «Эскуэль/ЭсКьюЭль», реже «СиКуЭль/СиКьюЭль», но чаще всего можно услышать жаргонное «Сиквэл/Сиквел».

Главный инструмент оптимизации и обслуживания базы данных — вот, для чего нужен SQL, хотя он и не ограничен этими целями. Возможности обработки охватывают команды определения представлений, указания прав доступа, схем отношений (в том числе, их удаления и изменения), взаимодействие с другими языками программирования, проверку целостности, задание начала и завершения транзакций.

SQL — что это такое простым языком

Для чего нужен SQL на конкретном примере

Чтобы непрофессионалу понять, что значит SQL для ИТ-отрасли, приведём простой пример.

Представьте таблицу с информацией о студентах: имена, возраст, предмет обучения и так далее. В ней есть определённое количество строк и столбцов. Один из рядов содержит успеваемость студентов.

Как только все данные будут внесены в таблицу, каждая из записей попадает в разные категории (столбцы или «аттрибуты»). Это и есть организованная база данных. Вся организованная внутри неё информация, которой можно управлять, называется Database Schema (схема данных).

Если вы захотите выдать стипендии учащимся, которые получают оценку 90% или выше, то выполняется запрос данных в SQL, что простыми словами значит «попросить базу данных предоставить информацию о студентах, получающих 90% и более баллов».

Команда будет иметь синтаксический вид:

SELECT * FROM Student WHERE Percentage>=90;

Когда количество данных мало (скажем, 10 студентов), то можно всё легко посчитать и написать на клочке бумаге. Но когда объём данных увеличивается до тысяч записей, становится нужен SQL — он помогает управлять огромными данными эффективно, то есть быстро получать расчёты на их основе.

Как используется SQL и в чём его польза?

С 1974 года, когда язык структурированных запросов только появился, он обеспечивает взаимодейтсвие с системами управления базами данных (СУБД) во всём мире.

SQL, как простой и лёгкий в изучении язык из области свободного программного обеспечения, сегодня активно применяется:

  • разработчиками баз данных (обеспечивают функциональность приложений),
  • тестировщиками (в ручном и автоматическом режиме),
  • администраторами (выполняют поддержание работоспособности среды).

Язык универсален и обладает чётко определённой структурой за счёт устоявшихся стандартов. Взаимодействие с базами данных происходит быстро даже в ситуациях, когда объёмы данных велики (Big Data). Кроме того, эффективное управление возможно даже без особых познаний кода.

SQL — что это такое простым языком

Области применения и где используется SQL:

  1. SQL DDL

    В качестве языка определения данных (DDL) он даёт возможность независимо создавать базу данных, определять её структуру, использовать, а затем cбрасывать по завершению манипуляций.

  2. SQL DML

    В качестве языка управления данными (DML) — для поддержки уже существующих баз данных на эффективном с точки зрения трудозатрат и производительности языке ввода, изменения и извлечения данных в отношении базы данных.

  3. SQL DCL

    Как язык контроля данных (DCL), когда нужно защитить свою базу данных от повреждения и неправильного использования.

  4. SQL клиент/сервер

    Открывают единую систему входа (SSO) с проверкой подлинности пользователя в нескольких веб-приложениях в рамках единого сеанса.

  5. SQL трёхуровневой архитектуры

    Гарантирует защиту информационной составляющей от несанкционированного использования и копирования в цифровом виде.

Почти все реляционные базы данных используют SQL. Некоторые из них даже включают аббревиатуру языка в своём названии: Microsoft SQL Server, MySQL, PostgreSQL, Non Stop SQL, SQLite. Но есть и те, кто именуется независимо, как Oracle, DB/2, Ingres. Есть ещё «NoSQL» — это собирательный термин, который относят ко всем нереляционным базам данных без SQL (либо, когда это не единственный язык запросов).

➡ В MySQL знаки вопросов вместо русских букв — решение проблемы с кодировкой

Видеолекция о том, как и где именно используется SQL, а также каким образом работают базы данных в реальных условиях, простым и доступным русским языком:

 

Логотип компании «ZEL-Услуги» Компания ZEL-Услуги

Обратитесь в компанию ИТ-аутсорсинга для дальнейшей экспертной поддержки и консультации по этой теме и любым другим техническим вопросам.

 

что выбрать в вашем случае?

Вот некоторые характеристики PostgreSQL:

  1. Открытый исходный код: PostgreSQL — это свободная и открытая объектно-реляционная система управления базами данных (ОРСУБД). В отличие от обычных РСУБД. Она позволяет использовать как объектно-ориентированные, так и реляционные базы данных.
  2. Расширенные настройки: вы можете разработать собственные плагины и настроить PostgreSQL под свои нужды. PostgreSQL также позволяет активировать нестандартные функции, написанные на других языках программирования, таких как C/C++, Java и других.
  3. Долгая история: PostgreSQL развивается с 1988 года.
    • Частые обновления: так, последним обновлением на март 2020 года в PostgreSQL является версия 12.2 от 13 февраля 2020 года.
  4. Либеральная открытая лицензия: у PostgreSQL щедрая опенсорсная лицензия, которая позволяет использовать, изменять и распространять СУБД как вам угодно.
  5. Функции MVCC: PostgreSQL была первой СУБД, которая реализовала функции управления параллельным доступом посредством многоверсионности (MVCC).
  6. Отзывчивое сообщество: преданное сообщество разработчиков и активистов всегда готово помочь. Кроме того, можно воспользоваться платной поддержкой от сторонних компаний. Сообщество поддерживает PostgreSQL и обновляет платформу через группу PostgreSQL Global Development Group.
  7. Высокая оценка пользователей: у PostgreSQL рейтинг 4,4 звезды (из пяти) по итогам 452 отзывов на G2 Crowd.
«PostgreSQL — одна из самых интересных РСУБД с открытым исходным кодом. Она бесплатная, кроме того, предлагает много продвинутых опций. На сегодняшний день PostgreSQL считается самой продвинутой системой управления базами данных. При совершении транзакции тут не нужно ставить блокировки чтения, что дает лучшую масштабируемость. Также этот инструмент управляется не человеком или компанией, а сообществом разработчиков».

Отзыв о PostgreSQL от рецензента на G2 Crowd

Среди пользователей PostgreSQL: Apple, BioPharm, Cisco, Debian, Etsy, Facebook, Fujitsu, IMDB, Instagram, Macworld, Red Hat, Skype, Spotify, Sun Microsystem, Yahoo.

Когда разработчики выбирают MySQL, а когда PostgreSQL

PostgreSQL часто выбирают как более функциональный вариант. Как вы увидите в дальнейшем описании, она действительно поставляется с большим количеством дополнительных опций. Тем не менее, когда речь заходит об архитектуре БД, в определенных случаях важнее простота, легкость и другие характеристики MySQL. В этом отношении каждая СУБД оптимально проявляет себя в разных областях.

Давайте посмотрим на ключевые особенности MySQL и PostgreSQL с точки зрения того, почему разработчики СУБД выбирают одну из них.

Основные преимущества MySQL для разработчиков

Высокая гибкость и масштабируемость: MySQL позволяет выбрать любой из широкого спектра движков хранения данных. Это обеспечивает гибкую интеграцию данных из различных типов таблиц. MySQL 8.0 поддерживает следующие системы хранения таблиц:

  • InnoDB
  • MyISAM
  • Memory
  • CSV
  • Archive
  • Blackhole
  • NDB/NDBCLUSTER
  • Merge
  • Federated
  • Example

Скорость и надежность: отказавшись от некоторых функций SQL, система MySQL сохранила легкость, отдавая приоритет скорости и надежности. Ее скорость особенно очевидна, когда речь заходит о высокопараллельных операциях без записи в БД (только чтение). Это отличный выбор для определенных приложений бизнес-аналитики. Но если вам нужно выполнить много сложных запросов под большой нагрузкой, то PostgreSQL может справиться лучше.

Варианты оптимизации сервера: MySQL предлагает множество вариантов настройки и оптимизации вашего сервера MySQL путем настройки переменных, таких как sort_buffer_size, read_buffer_size, max_allowed_packet и так далее.

Простота в использовании и популярность: популярность базы данных MySQL означает, что будет несложно найти администраторов баз данных с большим опытом работы с этой СУБД. Пользователи говорят, что эта система проще в настройке, то есть не требует такой тонкой настройки, как другие СУБД. По этому руководству вы можете убедиться, как легко новичку настроить свою первую базу данных MySQL. Установка и настройка PostgreSQL будет сложнее.

Кроме того, ряд сервисов фронтенда — такие как Adminer, MySQL Workbench, HeidiSQL и dbForge Studio, добавляют к MySQL графический интерфейс, более удобный и простой, чем работа из командной строки.

Облачная СУБД: MySQL Database хорошо подходит для использования в облаке, многие облачные платформы предлагают соответствующие платные услуги: они готовы установить и поддерживать вашу базу данных.

Управление параллельным доступом посредством многоверсионности (MVCC) и соответствие ACID с движком InnoDB: в текущих версиях MySQL движок по умолчанию — это InnoDB. Он обеспечивает функциональность MVCC и соответствие требованиям ACID. Однако из-за формата таблиц MyISAM в InnoDB на MySQL все равно могут возникнуть проблемы с поврежденными таблицами.

Согласно документации MySQL, «несмотря на то что формат таблицы MyISAM очень надежен (все изменения в таблице, сделанные инструкцией SQL, записываются до возвращения инструкции), вы все равно можете столкнуться с повреждением таблиц». Переход на другой движок не спасет ситуацию: хуже того, он может привести к потере соответствия MVCC и ACID.

Основные преимущества PostgreSQL для разработчиков

ОРСУБД, а не просто РСУБД. Что такое PostgreSQL? Это объектно-реляционная система, а ее программирование представляет собой своеобразный мостик между объектно-ориентированным и реляционным/процедурным программированием (как C++). Это позволяет определять объекты и наследование таблиц, что порождает более сложные структуры данных. ОРСУБД великолепно подходит для данных, которые не вписываются в строго реляционную модель.

Отлично подходит для сложных запросов, когда нужно выполнить сложные операции чтения-записи с одновременной валидацией данных. Однако ОРСУБД не так хорошо справляется с операциями только чтения (вот где ее превосходит MySQL).

Поддержка NoSQL и большое разнообразие типов данных: PostgreSQL является популярным выбором для функций NoSQL. Она изначально поддерживает большое разнообразие типов данных, включая JSON, hstore и XML. Можете также настроить исходные типы данных и задействовать нестандартные функции.

Спроектирована для управления очень большими БД: функции PostgreSQL не ограничивают размер ваших баз данных. Например, по словам администратора баз данных на Adjust.com, у них PostgreSQL управляет базой «примерно на четыре петабайта». Далее он утверждает, что «окружение обрабатывает, а затем записывает в журнал, от 100 до 250 тысяч внешних запросов в секунду». Это действительно тяжелая нагрузка!

Управление параллельным доступом посредством многоверсионности (MVCC): это одна из главных причин, почему компании выбирают PostgreSQL. MVCC предоставляет одновременный доступ к БД множеству агентов на чтение и запись. Это устраняет необходимость каждый раз блокировать чтение-запись, когда кто-то взаимодействует с данными. Таким образом, значительно повышается эффективность управления СУБД и ее производительность.

MVCC обеспечивает такую функциональность через «изоляцию снапшотов» (как ее называет Oracle). Моментальные снимки (снапшоты) представляют состояние данных в определенный момент времени.

Соответствие ACID: PostgreSQL предотвращает повреждение данных и сохраняет их целостность на транзакционном уровне. Подробнее о важности ACID-соответствия читайте здесь (как упоминалось выше, MySQL тоже предлагает соответствие ACID, но могут возникнуть осложнения).

СУБД PostgreSQL также просто развернуть в облаке: в Mail.ru Cloud Solutions доступно развертывание из шаблона, сервис автоматической миграции данных, аудит работы с данными.

Поддержка пользователей в MySQL и PostgreSQL

Вокруг обеих СУБД сформировались чрезвычайно обширные сообщества, которые всегда готовы помочь, в дополнение к платной поддержке от владельца СУБД или сторонних поставщиков.

Поддержка пользователей MySQL

Как проект с открытым исходным кодом, у MySQL большое сообщество активистов, готовых бесплатно помочь советами и рекомендациями. Лучший способ получить такую поддержку — обратиться на сайты MySQL и Percona.

Вот что один IT-специалист на G2 Crowd говорит о пользовательской поддержке MySQL:

«Мне больше всего понравилось, что для MySQL, как проекта с открытым исходным кодом, в интернете можно найти массу советов и получить помощь совершенно бесплатно. Это особенно полезно для проблем, которые затруднительно решить своими силами. Одно из главных преимуществ MySQL — большая популярность этой СУБД, так что вы найдете огромное сообщество людей, готовых помочь в любом вопросе».

Кроме того, вы можете самостоятельно разобраться в любых неполадках, погрузившись в бесплатные книги, руководства и справочники по MySQL.

Поддержка пользователей PostgreSQL

У базы данных PostgreSQL тоже большое сообщество активистов, которые дают бесплатные советы пользователям, в том числе по IRC и через списки рассылки. Кроме того, можно самостоятельно изучить многочисленные инструкции и книги по PostgreSQL.

Вот что говорит на G2 Crowd один администратор баз данных о поддержке PostgreSQL:

«…самую лучшую поддержку обеспечивает сообщество на форумах, где отвечают на вопросы».

Другой рецензент на G2 Crowd сказал следующее:

«Лично мне показалось, что здесь немного сложнее получить поддержку сообщества или загуглить проблему. Но по мере роста популярности PostgreSQL поддержка сообщества становится лучше».

Получить поддержку PostgreSQL может быть немного сложнее, п

MySQL и MongoDB — когда и что лучше использовать / Хабр

Петр Зайцев показывает разницу между MySQL и MongoDB. Это — расшифровка доклада с Highload++ 2016.

Если посмотреть такой известный DB-Engines Ranking, то можно увидеть, что в течении многих лет популярность open source баз данных растет, а коммерческих — постепенно снижается.

Что еще более интересно: если посмотреть на вот это отношение для разных типов баз данных, то видно, что для многих типов — таких, как колунарные базы данных, time series, document stories — open source базы данных наиболее популярны. Только для более старых технологий, таких как реляционные базы данных, или еще более древних, как multivalue база данных, коммерческие лицензии значительно популярнее.

Мы видим, что для многих приложений используют несколько баз данных для того, чтобы задействовать их сильные стороны. Ни одна база данных не оптимизирована для всех всевозможных юзкейсов. Даже если это PostgreSQL [смех на сцене и в зале].

С одной стороны, это хороший выбор, с другой — нужно пытаться найти баланс, так как чем у нас больше разных технологий, тем сложнее их поддерживать, особенно, если компания не очень большая.

Часто что видим, что люди приходят на такие конференции, слушают Facebook или «Яндекс» и говорят: «Ух ты! Сколько вот люди делают интересного. У них технологий разных используется штук 20, и еще штук 10 они написали сами». А потом они тот же самый подход пытаются использовать в своем стартапе из 10 человек, что работает, разумеется, не очень хорошо. Это как раз тот случай, где размер имеет значение.


Очень часто мы видим, что используется основное операционное хранилище и какие-то дополнительные сервисы. Например, для кэширования или полнотекстового поиска.

Другой подход к архитектуре с использованием разных баз данных — это микросервисы, у каждого из которых может быть своя база данных, которая лучше оптимизирована для задач именно этого сервиса. Как пример: основное хранилище может быть на MySQL, Redis и Memcache — для кэширования, Elastic Search или родной Sphinx — для поиска. И что-то вроде Kafka — чтобы передавать данные в систему аналитики, которая часто делалась на чём-то вроде Hadoop.

Если мы говорим про основное операционное хранилище, наверное, у нас есть два выбора. С одной стороны, мы можем выбрать реляционные базы данных, с языком SQL. С другой стороны — что-то нереляционное, а дальше уже смотреть на подвиды, которые доступы в данном случае.

Если говорить про NoSQL-модели данных, то их тоже достаточно много. Наиболее типичные — это либо key value, либо document, либо wide column базы данных. Примеры: Memcache, MongoDB, Cassandra, соответственно.

Почему в данном случае мы сравниваем именно MySQL и MongoDB? На самом деле причин несколько. Если посмотреть на Ranking баз данных, то мы видим, что MySQL, согласно этому рейтингу, — наиболее популярная реляционная база данных, а MongoDB — наиболее популярная нереляционная база данных. Поэтому их разумно сравнивать.

А ещё у меня есть наибольший опыт в использовании этих двух баз данных. Мы в Percona занимаемся плотно именно с ними, работаем с многими клиентами, помогаем им сделать такой выбор. Еще одна причина: обе технологии изначально ориентированы на разработчиков простых приложений. Для тех людей, для которых PostgreSQL — это слишком сложно.

Компания MongoDB изначально очень активно фокусировалась на пользователях MySQL. Поэтому очень часто у людей есть опыт использования и выбор между этими двумя технологиями.

В Percona кроме того, что мы занимаемся поддержкой, консалтингом для этих технологий, у нас есть достаточно много написанного open source софта для обеих технологий. На слайде можно посмотреть. Подробно я рассказывать об этом не буду.

Что следует обо мне лично: я занимаюсь MySQL значительно больше, чем MongoDB. Несмотря на то, что я постараюсь предоставить сбалансированный обзор с моей стороны, у меня могут быть какие-то предрасположенности к MySQL, так как его тараканы я знаю лучше.


Вот список разных вопросов, которые на мой взгляд имеет смысл рассматривать. Сейчас из них рассмотрим каждый более детально.

Что наиболее важно на мой взгляд — это учитывать, какие есть опыт и предпочтения команды. Для многих задач подходят оба решения. Их можно сделать и так, и так, может быть несколько сложнее, может быть несколько проще. Но если у вас команда, которая долго работала с SQL-базами данных и понимает реляционную алгебру и прочее, может быть сложно перетягивать и заставлять их использовать нереляционные базы данных, такие как MongoDB, где нет даже полноценной транзакции.

И наоборот: если есть какая-то команда, которая использует и хорошо знает MongoDB, SQL-язык может быть для неё сложен. Также имеет смысл рассматривать как оригинальную разработку, так и дальнейшее сопровождение и администрирование, поскольку всё это в итоге важно в цикле приложения.

Какие есть преимущества у данных систем?

Если говорить про MySQL — это проверенная технология. Понятно, что MySQL используется крупными компаниями более 15 лет. Так как он использует стандарт SQL, есть возможность достаточно простой миграции на другие SQL-базы данных, если захочется. Есть возможность транзакций. Поддерживаются сложные запросы, включая аналитику. И так далее.

С точки зрения MongoDB, здесь преимущество то, что у нас гибкий JSON-формат документов. Для некоторых задач и каким-то разработчикам это удобнее, чем мучиться с добавлением колонок в SQL-базах данных. Не нужно учить SQL — для некоторых это сложно. Простые запросы реже создают проблемы. Если посмотреть на проблемы производительности, в основном они возникают, когда люди пишут сложные запросы с JOIN в кучу таблиц и GROUP BY. Если такой функциональности в системе нет, то создать сложный запрос получается сложнее.

В MongoDB встроена достаточно простая масштабируемость с использованием технологии шардинга. Сложные запросы если возникают, мы их обычно решаем на стороне приложения. То есть, если нам нужно сделать что-то вроде JOIN, мы можем сходить выбрать данные, потом сходить выбрать данные по ссылкам и затем их обработать на стороне приложения. Для людей, которые знают язык SQL, это выглядит как-то убого и ненатурально. Но на самом деле для многих разработка application-серверов такое куда проще, чем разбираться с JOIN.


Если говорить про приложения, где используется MongoDB, и на чём они фокусируются — это очень быстрая разработка. Потому что всё можно постоянно менять, не нужно постоянно заботиться о строгом формате документа.

Второй момент — это схема данных. Здесь нужно понимать, что у данных всегда есть схема, вопрос лишь в том, где она реализуется. Вы можете реализовывать схему данных у себя в приложении, потому что каким-то же образом вы эти данные используете. Либо эта схема реализуется на уровне базы данных.

Очень часто если у вас есть какое-то приложение, с данными в базе данных работает только это приложение. Например, мы сохраняем данные из этого приложения в эту базу данных. Схема на уровне приложения работает хорошо. Если у нас одни и те же данные используются многими приложениями, то это очень неудобно, сложно контролировать.

Здесь возникает также вопрос времени жизни приложения. С MongoDB хорошо делать приложения, у которых очень ограниченный цикл жизни. То есть если мы делаем приложение, которое живёт недолго, например, сайт для запуска фильма или олимпиады. Мы пожили несколько месяцев после этого, и это приложение практически не используется. Если приложение живёт дольше, то тут уже другой вопрос.

Если говорить про распределение преимуществ и недостатков MySQL и MongoDB с точки зрения цикла разработки приложения, то их можно представить так:

Модель данных очень сильно зависит от приложения и опыта команды. Было бы странным сказать, что у нас реляционный или нереляционный подход к базам данных лучше и лучше всегда.

Если сравнивать их между собой, то понятно, что у нас есть. В MySQL — реляционная база данных. Мы можем с помощью реляционной базы данных легко отображать связи между таблицами. Нормализуя данные, мы можем заставлять изменения данных происходить атомарно в одном месте. Когда данные у нас денормализованы, нам не нужно при каких-то изменениях бежать и модифицировать кучу документов.

Хорошо это или плохо? Результат — всегда таблица. С одной стороны, это просто, с другой — некоторые структуры данных не всегда хорошо ложатся на таблицу, нам может быть неудобно с этим работать.

Это всё в теории. Если говорить о практическом использовании MySQL, мы знаем, что часто денормализуем данные, иногда для некоторых приложений мы используем что-то подобное: храним JSON, XML или другую структуру в колонках приложения.

У MongoDB структура данных основана на документах. Данные многих веб-приложений отображать очень просто. Потому что если храним структуру — что-то вроде ассоциированного массива приложения, то это очень просто и понятно для разработчика сериализуется в JSON-документ. Раскладывать такое в реляционной базе данных по разным табличкам — задача более нетривиальная.

Результаты как список документов, у которых может быть совершенно разная структура — более гибкое решение.

Пример. Мы хотим сохранить контакт-лист с телефона. Понятно, что есть данные, которые хорошо кладутся в одну реляционную табличку: Фамилия, Имя и т.д. Но если посмотреть на телефоны или email-адреса, то у одного человека их может быть несколько. Если подобное хранить в хорошем реляционном виде, то нам неплохо бы это хранить в отдельных таблицах, потом это всё собирать JOIN, что менее удобно, чем хранить это всё в одной коллекции, где находятся иерархические документы.

Следует сказать, что это всё в строго реляционной теории — некоторые базы данных поддерживают массивы. В MySQL поддерживается формат JSON, в который можно засунуть такие вещи, как несколько email-адресов. Или многие годы люди серилизовали это ручками: надо нам сохранить несколько email-адресов, то давайте запишем их через запятую, и дальше приложение разберётся. Но как-то это не очень кошерно.


Интересно, что между MySQL и MongoDB — вообще, между реляционными и нереляционными СУБД — что-то совпадает, что-то различается. Например, в обоих случаях мы говорим о базах данных, но то, что мы называем таблицей в реляционной базе данных, часто в нереляционной называется коллекцией. То, что в MySQL — колонка, в MongoDB — поле. И так далее.

С точки зрения использования JOIN, в MongoDB нет такого понятия — это вообще понятие из реляционной структуры. Там мы либо делаем встроенный документ, что близко к концепту денормализации, либо мы просто сохраняем идентификатор документа в каком-то поле, называем это ссылкой и дальше ручками выбираем данные, которые нам нужны.

Что касается доступа: там, где мы к реляционным данным используем язык SQL, в MongoDB и многих других NoSQL-базах данных используется такой стандарт, как CRUD. Этот стандарт говорит, что есть операции для создания, чтения, удаления и обновления документов.

Несколько примеров.

Как у нас могут выглядеть наиболее типичные задачи по работе с документами в MySQL и MongoDB:

Вот пример вставки.

Пример обновления.

Пример удаления.

Если вы разработчик, который знаком с языком JavaScript, то такой синтаксис, который предоставляет CRUD (MongoDB), для вас будет более естественным, чем синтаксис SQL.

На мой взгляд, когда у нас есть простейшие операции: поиск, вставка, они все работают достаточно хорошо. Когда речь идёт о более интересных операциях выборки, на мой взгляд, язык SQL куда более читаемый.

&gt вместо простого знака «>». Не очень читаемо, на мой взгляд.

Достаточно легко с помощью интерфейса делать такие вещи, как подсчёт числа строк в таблице или коллекции.

Но если мы делаем более сложные вещи, например, GROUP BY, в MongoDB для этого требуется использовать Aggregation Framework. Это несколько более сложный интерфейс, который показывает, как мы хотим отфильтровать, как мы хотим группировать и т.д. Aggregation Framework уже поддерживает что-то вроде операций JOIN.

Следующий момент — это транзакции и консистентность (ACID). Если пойти и почитать документацию MongoDB, там будет: «Мы поддерживаем ACID-транзакции, но с ограничением». На мой взгляд, стоит сказать: «ACID мы не поддерживаем, но поддерживаем другие минимальные нетранзакционные гарантии».

Какая у нас между ними разница?

Если говорить про MySQL, он поддерживает ACID-транзакции произвольного размера. У нас есть атомарность этих транзакций, у нас есть мультиверсионность, можно выбирать уровень изоляции транзакций, который может начинаться с READ UNCOMMITED и заканчиваться SERIALIZABLE. На уровне узла и репликаций мы можем конфигурировать, как данные хранятся.

Мы можем сконфигурировать у InnoDB, как работать с лог-файлом: сохранять его на диск при коммите транзакции или же делать это периодически. Мы можем сконфигурировать репликацию, включить, например, Semisynchronous Replication, когда у нас данные будут считаться сохранёнными только тогда, когда их копия будет принята на одном из slave’ов.

MongoDB не поддерживает транзакции, но он поддерживает атомарные операции над документом. Это значит, что с точки зрения одного документа операция у нас будет атомарна. Если у нас операция изменяет несколько документов, и во время этой операции произойдет какой-то сбой внутри, то какие-то из этих документов могут быть изменены, а какие-то — не изменены.

Консистентность тоже делается на уровне документов. В кластере мы можем выбирать гибкую консистентность. Мы можем указать, какие мы хотим гарантии — гарантии, что у нас данные были записаны только на один узел, или они были реплицированы на все узлы кластеров. Чтение консистентности тоже происходит на уровне документа.

Есть такой вариант обновления isolated, который позволяет выполнить обновление изолированно от других транзакций, но он очень неэффективен — он переключает базы данных в монопольный режим доступа, поэтому он используется достаточно редко. На мой взгляд, если говорить про транзакции и консистентность, то MongoDB достаточна убогая.


Производительность очень сложно сравнивать напрямую, потому что мы часто делаем разные схемы баз данных, дизайн приложения. Но если говорить в целом, MongoDB изначально была сделана, чтобы хорошо масштабироваться на много узлов через шардинг, поэтому эффективности было уделено меньше внимания.

Это результаты бенчмарка, который делал Марк Каллаган. Здесь видно, что с точки зрения использования процессора, ввода/вывода MySQL — как InnoDB, так и MyRocks — использует значительно меньше процессора и дискового ввода/вывода на операции бенчмарка Linkbench от Facebook.

Масштабируемость.

Что такое масштабируемость в данном контексте? То, насколько легко нам взять наше маленькое приложение и масштабировать его на многие миллионы, может быть, даже на миллиарды пользователей.

Масштабируемость бывает разная. Она бывает средняя, в рамках одной машины, когда мы хотим поддерживать приложения среднего размера, либо масштабируемость на кластере, когда у нас приложения уже очень большие, когда понятно, что даже одна самая мощная машина не справится.

Также имеет смысл говорить о том, масштабируем ли мы чтение, запись или объем данных. В разных приложениях их приоритеты могут различаться, но в целом, если приложение очень большое, обычно им приходится работать со всеми из этих вещей.

В MySQL в новых версиях весьма хорошая масштабируемость в рамках одного узла для LTP-нагрузок. Если у нас маленькие транзакции, есть какое-нибудь железо, в котором 64 процессора, то масштабируется достаточно хорошо. Аналитика или сложные запросы масштабируются плохо, потому что MySQL может использовать для одного запроса только один поток, что плохо.

Традиционно чтение в MySQL масштабируется с репликацией, запись и размер данных — через шардинг. Если смотреть на все большие компании — Facebook, Twitter — они все используют шардинг. Традиционно шардинг в MySQL используется вручную. Есть некоторые фреймворки для этого. Например, Vitess — это фреймворк, который Google использует для scaling сервиса YouTube, они его выпустили в open source. До этого был framework Jetpants. Стандартного решения для шардинга MySQL не предлагает, часто переход на шардинг требует внимания от разработчиков.

В MongoDB фокус изначально был в масштабируемости на многих узлах. Даже в случаях с маленьким приложением многим рекомендуется использовать шардинг с самого начала. Может, всего пару replica set, потом вы будете расти вместе со своим приложением.

В шардинге MongoDB есть некоторые ограничения: не все операторы с ним работают, например, есть isolated-вариант для обеспечения консистентности. Она не работает если использовать шардинг. Но при этом многие основные операции хорошо работают в шардингом, поэтому людям позволяется scale’ить приложения значительно лучше. На мой взгляд, шардинг и вообще репликация в MongoDB сделаны куда лучше, чем MySQL, значительно проще в использовании для пользователя.


Администрирование – это все те вещи, о которых не думают разработчики. По крайней мере в первую очередь. Администрирование — это то, что нам приложение придётся бэкапить, обновлять версии, мониторить, восстановливать при сбоях и так далее.

MySQL достаточно гибок, у него есть много разных подходов. Есть хорошие open source реализации всего, но это множество вариантов порождает сложность. Я часто общаюсь с пользователями, которые только начинают изучать MySQL. Они говорят: «Ёлки-палки, сколько же у вас всего вариантов. Вот только репликация — какую мне использовать: statement-репликацию, raw-репликацию, или mix? А еще есть gtid и стандартная репликация. Почему нельзя сказать „просто работай“?»

В MongoDB всё больше ориентированно на то, что оно работает каким-то одним стандартным образом — есть минимизация администрирования. Но понятно, что это происходит при потере гибкости. Коммьюнити open source решений для MongoDB значительно меньше. Многие вещи в MongoDB с точки зрения рекомендаций достаточно жестко привязаны к Ops Manager — коммерческой разработке MongoDB.


Как в MongoDB, так и в MySQL есть мифы, которые были в прошлом, которые были исправлены, но у людей хорошая память, особенно если что-то не работает. Помню, в MySQL после того как появились транзакции с InnoDB, люди мне лет десять говорили: «А в MySQL нет же транзакций?»

В MongoDB было много разных проблем с производительностью MMAP storage engine: гигантские блокировки, неэффективное использование дискового пространства. Сейчас в стандартном движке WiredTiger уже нет многих из этих проблем. Есть другие проблемы, но не эти.

«Нет контроля схемы» — ещё такой миф. В новых версиях MongoDB можно для каждой коллекции определить на JSON структуру, где данные будут валидироваться. Данные, которые мы пытаемся вставить, и они не соответствуют какому-то формату, можно выкидывать.

«Нет аналога JOIN» — то же самое. В MongoDB это появилось, но нескольких ограниченных вещах. Только на уровне одного шарда и только если мы используем Aggregation Framework, а не в стандартных запросах.

Какие у нас есть мифы в MySQL? Здесь я буду говорить больше о поддержке NoMySQL решений в MySQL, об этом я буду говорить завтра. Следует сказать, что MySQL сейчас тоже можно использовать через интерфейс CRUD’a, использовать в NoSQL режиме примерно как MongoDB.

Типичный пример, где используется MySQL-решение — это сайт электронной коммерции. Когда у нас идёт вопрос о деньгах, часто мы хотим полноценные транзакции и консистентность. Для таких вещей хорошо подходит реляционная структура, которая была проработана, и commerce на реляционных базах данных уже делается многие десятилетия. Так что можно взять один из готовых подходов к структуре данных и использовать его.

Обычно с точки зрения e-commerce объем данных у нас не такой большой, так что даже достаточно большие магазины могут долго работать без шардинга. Приложения у нас постоянно разрабатываются и усовершенствуется на протяжении многих лет. И у этого приложения много компонент, которые работают с одними и теми же данными: кто-то рассчитывает, где цены поменять, кто-то ещё что-то делает.

MongoDB часто задействуется как бэкенд больших онлайн-игр. Electronic Arts для очень многих игр использует MongoDB. Почему? Потому что масштабируемость важна. Если какая-то игра хорошо выстрелит, её приходится масштабировать значительно больше, чем предполагалось.

С другой стороны, если не выстрелит, нам хотелось бы, чтобы инфраструктуру можно было бы уменьшить. Во многих играх это идет так: мы запустили игру, у нее есть какой-то пик, приходится делать большой кластер. Потом игра уже выходит из популярности, для неё бэкенд нужно сжимать, сохранять и использовать. В данном случае есть одно приложение (игра), база данных, с одной стороны, несложная, с другой — сильно привязанная к приложению, в котором хранятся все важные для игры параметры.

Часто консистентность базы данных на уровне объектов здесь достаточна, потому что многие вопросы консистентости решаются на уровне приложения. Например, данные одного игрока сохраняет только один application service.


Всем рекомендую это старое, древнее, но очень смешное видео http://www.mongodb-is-web-scale.com/ [YouTube]. На этом мы закончим.

MySQL и MongoDB — когда что лучше использовать?

Что такое MySQL? & Почему это самая популярная в мире база данных с открытым исходным кодом

Резюме : это руководство поможет вам ответить на вопрос: что такое MySQL? И объясню, почему MySQL является самой популярной в мире базой данных с открытым исходным кодом.

Чтобы понять MySQL, вам сначала нужно понять базу данных и SQL. Если вы уже знаете базы данных и SQL, вы можете перейти к разделу What is MySQL .

Введение в базу данных

Вы работаете с данными каждый день…

Когда вы хотите послушать свои любимые песни, вы открываете свой плейлист со своего смартфона.В данном случае плейлист — это база данных.

Когда вы делаете снимок и загружаете его в свою учетную запись в социальной сети, например Facebook, ваша фотогалерея представляет собой базу данных.

Когда вы просматриваете веб-сайт электронной коммерции для покупки обуви, одежды и т. Д., Вы используете базу данных корзины покупок.

Базы данных есть везде. Так что же такое база данных? По определению, база данных — это просто структурированный набор данных.

Данные, относящиеся друг к другу по своей природе, например, продукт принадлежит к категории продукта и связан с несколькими тегами.Поэтому мы используем термин реляционная база данных .

В реляционной базе данных мы моделируем такие данные, как продукты, категории, теги и т. Д., С помощью таблиц. Таблица содержит столбцы и строки. Это похоже на электронную таблицу.

Таблица может относиться к другой таблице с помощью отношения, например, отношения один-к-одному и один-ко-многим.

Поскольку мы имеем дело со значительным объемом данных, нам нужен способ определения баз данных, таблиц и т. Д. И более эффективной обработки данных.Кроме того, мы хотим превратить данные в информацию.

И здесь в игру вступает SQL.

SQL — язык реляционной базы данных.

SQL — язык структурированных запросов.

SQL — это стандартизированный язык, используемый для доступа к базе данных.

ANSI / SQL определяет стандарт SQL. Текущая версия SQL — SQL: 2016. Когда мы говорим о стандарте SQL, мы имеем в виду текущую версию SQL.

SQL состоит из трех частей:

  1. Язык определения данных включает операторы, которые помогают вам определять базу данных и ее объекты, e.g., таблицы, представления, триггеры, хранимые процедуры и т. д.
  2. Язык обработки данных содержит операторы, которые позволяют обновлять и запрашивать данные.
  3. Язык управления данными позволяет предоставлять пользователю права доступа к определенным данным в базе данных.

Теперь вы понимаете базу данных и SQL, и пришло время ответить на следующий вопрос…

Что такое MySQL

MySQL? Какой?

My — имя дочери соучредителя MySQL Монти Видениуса.

Имя MySQL — это комбинация слов My и SQL, MySQL.

MySQL — это система управления базами данных, которая позволяет управлять реляционными базами данных. Это программное обеспечение с открытым исходным кодом, поддерживаемое Oracle. Это означает, что вы можете использовать MySQL, не платя ни копейки. Кроме того, при желании вы можете изменить его исходный код в соответствии со своими потребностями.

Несмотря на то, что MySQL является программным обеспечением с открытым исходным кодом, вы можете купить коммерческую лицензионную версию у Oracle, чтобы получить дополнительные услуги поддержки.

MySQL довольно легко освоить по сравнению с другим программным обеспечением баз данных, таким как Oracle Database или Microsoft SQL Server.

MySQL может работать на различных платформах UNIX, Linux, Windows и т. Д. Вы можете установить его на сервере или даже на рабочем столе. Кроме того, MySQL надежен, масштабируем и быстр.

Официальный способ произносить MySQL — My Ess Que Ell, а не My Sequel. Впрочем, вы можете произносить это как угодно, да какая разница?

Если вы разрабатываете веб-сайты или веб-приложения, MySQL — хороший выбор. MySQL — важный компонент стека LAMP, в который входят Linux, Apache, MySQL и PHP.

  • Было ли это руководство полезным?
  • Да Нет
.

Что такое MySQL | Введение в MySQL | Система управления базами данных

Управление базами данных — самая важная часть, когда вокруг вас огромное количество данных. MySQL — одна из самых известных реляционных баз данных для хранения и обработки ваших данных. В этом блоге What is MySQL вы ознакомитесь со следующими темами:

Что такое данные и база данных?

Предположим, компании необходимо сохранить имена сотен сотрудников, работающих в компании, таким образом, чтобы всех сотрудников можно было идентифицировать индивидуально.Затем компания собирает данные всех этих сотрудников. Когда я говорю «данные», я имею в виду, что компания собирает отдельные части информации об объекте. Таким образом, этот объект может быть реальной сущностью, такой как люди, или любым объектом, например мышью, ноутбуком и т. Д.

Теперь, когда у вас есть такой большой объем данных, вам, очевидно, нужно место для их хранения, которое это база данных.

Итак, вы можете рассматривать базу данных как большой контейнер, в котором вы можете хранить все данные.Но как вы думаете, сможете ли вы использовать свои данные без надлежащего управления базой данных?

Это очевидное нет!

Итак, давайте узнаем, что такое система управления базами данных и ее различные типы.

Система управления базами данных и типы СУБД

Система управления базами данных ( СУБД ) — это программное приложение, которое взаимодействует с пользователем, приложениями и самой базой данных для сбора и анализа данных. Данные, хранящиеся в базе данных, могут быть изменены, извлечены и удалены и могут быть любого типа, например строки, числа, изображения и т. Д.

Типы СУБД

Существует четыре основных типа СУБД: иерархическая, реляционная, сетевая и объектно-ориентированная.

  • Иерархическая СУБД: Как следует из названия, этот тип СУБД имеет стиль отношений типа предшественник-преемник. Таким образом, он имеет структуру, аналогичную структуре дерева, в котором узлы представляют записи, а ветви дерева представляют поля.
  • Реляционная СУБД (СУБД): Этот тип СУБД использует структуру, которая позволяет пользователям идентифицировать и получать доступ к данным в отношении к другому фрагменту данных в базе данных.
  • Сетевая СУБД: Этот тип СУБД поддерживает отношения «многие ко многим», в которых можно связать несколько записей-членов.
  • Объектно-ориентированная СУБД: Этот тип СУБД использует небольшие отдельные программы, называемые объектами. Каждый объект содержит фрагмент данных и инструкции для действий, которые необходимо выполнить с данными.

Теперь, когда я рассказал вам о СУБД, пора разобраться, что такое SQL?

Подпишитесь на наш канал на YouTube, чтобы получать новости..!

Язык структурированных запросов (SQL)

SQL — это ядро ​​реляционной базы данных, которое используется для доступа к базе данных и управления ею. Используя SQL, вы можете добавлять, обновлять или удалять строки данных, извлекать подмножества информации, изменять базы данных и выполнять множество действий. Различные подмножества SQL следующие:

  • DDL (язык определения данных) — Он позволяет выполнять различные операции с базой данных, такие как объекты CREATE, ALTER и DELETE.
  • DML (язык манипулирования данными) — позволяет получать доступ к данным и управлять ими. Он помогает вам вставлять, обновлять, удалять и извлекать данные из базы данных.
  • DCL (язык управления данными) — Позволяет контролировать доступ к базе данных. Пример — предоставление или отзыв разрешений на доступ.
  • TCL (язык управления транзакциями) — позволяет обрабатывать транзакции базы данных.Пример — фиксация, откат, точка сохранения, установка транзакции.

Хорошо! Итак, теперь, когда вы знаете SQL, пора познакомиться с MySQL.

Что такое MySQL и его особенности

MySQL — это система управления реляционными базами данных с открытым исходным кодом, которая работает на многих платформах. Он обеспечивает многопользовательский доступ для поддержки многих механизмов хранения и поддерживается Oracle. Таким образом, вы можете купить коммерческую лицензионную версию Oracle, чтобы получить услуги поддержки премиум-класса.

Возможности MySQL следующие:

Рис. 1: Возможности MySQL — Что такое MySQL?

  • Простота управления — Программное обеспечение очень легко загружается, а также использует планировщик событий для автоматического планирования задач.
  • Надежная поддержка транзакций — Обладает свойством ACID (атомарность, согласованность, изоляция, долговечность), а также обеспечивает распределенную поддержку нескольких версий.
  • Комплексная разработка приложений — MySQL имеет библиотеки подключаемых модулей для встраивания базы данных в любое приложение. Он также поддерживает хранимые процедуры, триггеры, функции, представления и многое другое для разработки приложений. Вы можете обратиться к руководству RDS Tutorial , чтобы понять RDBMS Amazon.
  • Высокая производительность — Обеспечивает быструю загрузку утилит с отдельными кэшами памяти и секционированием индексов таблиц.
  • Низкая совокупная стоимость владения — Это снижает затраты на лицензирование и расходы на оборудование.
  • Открытый исходный код и круглосуточная поддержка — Эта СУБД может использоваться на любой платформе и предлагает круглосуточную поддержку для корпоративных версий и версий с открытым исходным кодом.
  • Безопасная защита данных — MySQL поддерживает мощные механизмы, гарантирующие, что только авторизованные пользователи имеют доступ к базам данных.
  • Высокая доступность — MySQL может запускать конфигурации высокоскоростной репликации главный / подчиненный и предлагает кластерные серверы.
  • Масштабируемость и гибкость — С MySQL вы можете запускать глубоко встроенные приложения и создавать хранилища данных, содержащие огромное количество данных.

Теперь, когда вы, ребята, знаете, что такое MySQL, позвольте мне рассказать вам о различных типах данных, поддерживаемых MySQL.

Интересно узнать больше о MySQL Узнать сейчас

Типы данных MySQL

MySQL Data Types - What is MySQL - Edureka

Рис. 2: Типы данных MySQL — Что такое MySQL?

  • Числовой — Этот тип данных включает целые числа различного размера, числа с плавающей запятой (действительные) различной точности и форматированные числа.
  • Символьная строка — Эти типы данных имеют фиксированное или различное количество символов. Этот тип данных также имеет строку переменной длины под названием CHARACTER LARGE OBJECT ( CLOB ), которая используется для указания столбцов с большими текстовыми значениями.
  • Битовая строка — Эти типы данных имеют либо фиксированную длину, либо переменную длину битов. Существует также тип данных строки битов переменной длины под названием BINARY LARGE OBJECT (BLOB), , который доступен для указания столбцов с большими двоичными значениями, например изображений.
  • Boolean — Этот тип данных имеет значения TRUE или FALSE. Поскольку SQL имеет значения NULL, используется трехзначная логика, которая НЕИЗВЕСТНА.
  • Дата и время — Тип данных ДАТА имеет: ГОД, МЕСЯЦ и ДЕНЬ в форме ГГГГ-ММ-ДД. Точно так же тип данных TIME имеет компоненты HOUR, MINUTE и SECOND в форме ЧЧ: ММ: СС. Эти форматы могут изменяться в зависимости от требований.
  • Отметка времени и интервал — Тип данных TIMESTAMP включает не менее шести позиций для десятичных долей секунд и необязательный квалификатор WITH TIME ZONE в дополнение к полям DATE и TIME.Тип данных INTERVAL упоминает относительное значение, которое можно использовать для увеличения или уменьшения абсолютного значения даты, времени или метки времени.

Я надеюсь, что вам понравилось читать этот блог What is MySQL. В продолжение этого блога будет выпущено учебное пособие по MySQL, в котором мы начнем работу со всеми командами SQL, но перед этим вы можете обратиться к этому блогу SQL Interview Questions, , чтобы узнать самые популярные вопросы, задаваемые в интервью. .Быть в курсе!

Если вы хотите узнать больше о MySQL и познакомиться с этой реляционной базой данных с открытым исходным кодом, то ознакомьтесь с нашим курсом MySQL DBA Certification Training , который включает обучение под руководством инструктора и практический опыт работы с проектами. Этот тренинг поможет вам глубже понять MySQL и достичь мастерства в этой теме.

Есть к нам вопрос? Пожалуйста, укажите это в комментариях к « Что такое MySQL? », и я свяжусь с вами.

.

Что такое MySQL? Что такое база данных? Что такое SQL? (thesitewizard.com)

Определения MySQL, SQL и баз данных для новых веб-мастеров


Кристофер Хенг, thesitewizard.com

Новые веб-мастера иногда спрашивают меня, «Что такое MySQL?», «Что такое SQL» и «Что такое база данных?». Эти вопросы возникают потому, что такие условия имеют тенденцию всплывать повсюду в связи с созданием веб-сайта. Эта статья объясняет их на (надеюсь) простом английском.

Для кого предназначена эта статья?

Эта статья написана с точки зрения веб-мастера и предназначена для потенциальных веб-мастеров (или существующих веб-мастеров). кто внезапно сталкивается с загадочными терминами, такими как «база данных MySQL» или «база данных PostgreSQL» и т.п.

Это не должно быть строгим академическим определением для студентов, изучающих программирование. Если ты один, вам следует обратиться к книге по программированию для правильного определения. Приведенное ниже объяснение предназначено для неспециалистов, которые видят эти термины появляются в таких местах, как веб-хосты списки функций и списки «Системные требования» для различного веб-программного обеспечения, например Скрипты PHP, и интересно, что это значит, и должны ли они об этом беспокоиться.Другими словами, это руководство предназначено для нетехнической аудитории. стремятся получить общую картину и посмотреть, актуальна ли она для них.

(Примечание: если вы не знаете, что такое веб-хостинг, вам следует прочитать Как сделать / создать свой собственный сайт: Руководство от A до Z для начинающих с объяснением этого и других основных терминов для веб-мастеров.)

Что такое база данных?

Прежде чем я смогу ответить, что означает MySQL, я должен объяснить, что означает компьютерная «база данных».

По сути, когда речь идет о компьютерах, база данных — это просто набор данных.Специализированный (или «специализированный» в США Англ.) Программное обеспечение баз данных, такое как MySQL, — это просто программы, которые позволяют хранить и извлекать эти данные с максимальной эффективностью. насколько возможно.

Небольшая аналогия поможет прояснить, почему мы используем специализированное программное обеспечение для баз данных. Подумайте о документах, хранящихся на твой компьютер. Если бы вы сохранили все свои документы, используя (безумную) схему именования файлов, например « 1.doc «, « 2.doc », « 3.doc » и т. Д. До (скажем) « 9 999 999.doc «, вы в конечном итоге столкнетесь с проблема с поиском нужного файла, если вы ищете конкретный документ. Например, если вы ищете какое бизнес-предложение вы сделали некоторое время назад компании XYZ, какой файл открыть? Один из способов — последовательно проверять каждый файл, начиная с « 1.doc », пока вы не получите нужные данные. Но это очевидно крайне неэффективный метод получения нужного файла. И это в первую очередь результат неэффективного метода хранение ваших данных (т.е. сохранение ваших файлов) в первую очередь.

Конечно, это нелепый пример. Я имею в виду, что никто из моих знакомых не сохраняет файлы с такими именами, и даже если так, есть много программ для поиска Это может помочь вам найти нужный файл без необходимости вручную открывать каждый из них по очереди. Но это служит для того, чтобы показать, что если у вас есть много данных, если у вас нет хорошей системы организации поиск нужных данных — очень трудоемкая операция. И это отнимает больше времени по мере роста объема данных.

Программа базы данных — это тип компьютерного программного обеспечения, которое предназначено для обработки большого количества данных, но для их хранения таким образом что поиск (и, следовательно, получение) любого фрагмента данных более эффективен, чем если бы вы просто сбросили его волей-неволей повсюду. С таким программным обеспечением базы данных, если вы (скажем) ведете список клиентов и их адреса доставки, ввод и получение информации о вашем миллионном клиенте займет не намного больше времени (если вообще потребует), чем ввод и получение информация о вашем первом покупателе.

Что такое SQL? Что такое MySQL? Что такое PostgreSQL?

Многие компьютерные программы, включая веб-программы, такие как блоги, фотогалереи и системы управления контентом нужно хранить и извлекать данные. Например, программное обеспечение блога должно хранить сообщения (т. Е. Статьи), которые вы пишете, и получать их, когда посетитель заходит на ваш сайт. Точно так же фотогалереи хранят информацию о своих фотографиях. (например, для сайтов, которые позволяют пользователям оценивать фотографии, числовой рейтинг для каждого изображения сохраняется в базе данных).Вместо того, чтобы изобретать колесо и внедрять собственную систему хранения и извлечения данных, эти программное обеспечение просто использует специализированные программы баз данных, о которых я упоминал ранее.

Чтобы облегчить другим программам доступ к данным через них, многие программы баз данных поддерживают компьютерный язык, называемый «SQL» (часто произносится как «продолжение»). SQL был специально разработан для этой цели. Программы, которые хотят программное обеспечение базы данных для обработки низкоуровневой работы по управлению данными просто использует этот язык для отправки ему инструкций.

Существует множество баз данных, поддерживающих использование SQL для доступа к своим данным, в том числе MySQL и PostgreSQL. Другими словами, MySQL — это всего лишь бренд одного программного обеспечения для баз данных, один из многих. То же самое и с PostgreSQL. Эти две базы данных очень популярны среди программ, работающих на веб-сайтах (возможно, потому что они бесплатные), поэтому вы часто видите, что один или оба из них рекламируются в списках функций веб-хостов, а также указано как одно из «системных требований» для определенного веб-программного обеспечения (например, блогов и системы управления контентом).

Нужно ли мне знать, что лучше?

Для среднего веб-мастера, который не пишет компьютерные программы для своих веб-сайтов, плюсы и минусы MySQL по сравнению с PostgreSQL или какая-то другая база данных не важны. Все, о чем вам нужно беспокоиться, это то, предоставляет ли ваш веб-хостинг программное обеспечение базы данных, необходимое вашему веб-приложению. Как правило, если вы используете одно из популярных программ для ведения блогов или программное обеспечение CMS, часто это MySQL. Фактически, поскольку практически каждый коммерческий веб-хостинг предоставляет MySQL как часть одного или нескольких пакетов хостинга, скорее всего, вам даже не придется об этом беспокоиться.

Мне это нужно?

Как упоминалось в предыдущем разделе, если вы используете программное обеспечение для ведения блогов или CMS (как WordPress, Drupal или Expression Engine) вам нужно будет разместить свой веб-сайт на веб-узле, который предоставляет вам базу данных MySQL. База данных будет использоваться программным обеспечением для хранения всех ваших сообщений (статей), веб-страниц и комментариев посетителей.

Если, с другой стороны, ваш сайт был создан с помощью веб-редактора, например Expression Web, Dreamweaver или BlueGriffon, а ты не интегрировал блог или какое-либо другое веб-программное обеспечение на ваш сайт, скорее всего, вам не нужен MySQL.В любом случае, если вы не уверены, вы всегда можете проверить страницу «Системные требования» для программного обеспечения, которое вы хотите использовать. чтобы узнать, понадобится ли вам MySQL.

(Прежде чем вы спросите, форма обратной связи, созданная Мастер сценария формы обратной связи делает , а не , нужен MySQL. Не всем веб-программам требуется база данных MySQL; только те, которым нужно хранить данные.)

Нужно ли мне изучать SQL, MySQL или что-то подобное?

Для подавляющего большинства веб-мастеров вам не нужно изучать SQL или учиться использовать MySQL, даже если вы создание блога.Программное обеспечение, которое вы используете, будь то WordPress или что-то еще, сделает всю грязную работу по хранению и извлечению ваших данных за вас. Все, что вам нужно узнать, это как использовать это конкретное программное обеспечение (например, WordPress). Такие вещи, как MySQL и другие базы данных, похожи на двигатели автомобиля. Так же, как вам не нужно учиться конструировать автомобильный двигатель, чтобы иметь возможность использовать автомобиль, вам также не нужно чтобы знать, как напрямую писать или читать базу данных MySQL, чтобы использовать программное обеспечение для ведения блогов.

Конечно, если вы программист и намереваетесь написать компьютерную программу, которая фактически обращается к MySQL или другому SQL database, то вам нужно будет изучить SQL (а также язык программирования).Но тогда, если вы один, вы, вероятно, уже знал это. Примечание для новичков: чтобы быть веб-мастером, не обязательно быть программистом. Создание сайта, даже если вы вручную кодируете свой сайт прямо в HTML, это не программирование. Так что не волнуйся.

Другие соответствующие статьи

Если вы читаете эту статью, чтобы узнать значение этих терминов, скорее всего, вы найдете другие статьи в списке приведенные ниже сведения помогут пояснить другие термины, часто используемые в литературе для веб-мастеров:

Несомненно, есть много других терминов, с которыми вы столкнулись, когда говорите создание веб-сайта.Если это обычное вопрос, скорее всего, у меня также есть статья об этом где-то на thesitewizard.com. Вы также можете ищите их с помощью моей внутренней поисковой системы, посмотрите указатель тем и категорий, или просто просмотрите карту сайта. Поскольку возможно, что я организованная информация отличается от того, как вы мысленно категоризируете вещи (и, возможно, даже используете другие термины или орфографию), если вы не можете найти то, что хотите, используя один из вышеперечисленных методов, попробуйте другой.

Авторские права © 2010-2018 Кристофер Хенг.Все права защищены.
Получите больше бесплатных советов и подобных статей, по веб-дизайну, продвижению, доходам и написанию сценариев с https://www.thesitewizard.com/.

Считаете ли вы эту статью полезной? Вы можете узнать о новых статьях и сценариях, опубликованных на thesitewizard.com подписавшись на RSS-канал. Просто укажите программу чтения RSS-каналов или браузер, поддерживающий RSS-каналы, на https://www.thesitewizard.com/thesitewizard.xml. Вы можете узнать больше о том, как подписаться на RSS-каналы с моего RSS-канала.

Эта статья защищена авторским правом. Пожалуйста, не воспроизводите и не распространяйте эту статью полностью или частично в какой-либо форме.

.

Что такое схема производительности MySQL и зачем она нужна? —

Когда у вас установлена ​​нетривиальная база данных, вы неизбежно рано или поздно столкнетесь с проблемами, связанными с производительностью, начиная от запроса, который не выполняется так быстро, как хотелось бы, до полного сбоя, когда база данных вообще не отвечает.

До MySQL 5.5 инструменты, доступные для исследования того, что происходит внутри MySQL, были несколько ограничены. Некоторые из инструментов были:

  • Журналы медленных и общих запросов
  • Счетчики состояния, доступные через SHOW [SESSION | GLOBAL] STATUS
  • Состояние механизма хранения, e.грамм. SHOW ENGINE INNODB STATUS
  • Команда EXPLAIN для исследования плана запроса оператора SELECT
  • SHOW PROFILE для профилирования одного или нескольких запросов
  • Журнал ошибок MySQL

Все эти инструменты являются очень полезны, но также имеют свои ограничения, например, SHOW STATUS в основном состоит из счетчиков, которые не дают подробного представления о том, что конкретно происходит.

В MySQL 5.5 был представлен новый инструмент Performance Schema (часто сокращенно P_S). Схема производительности состоит из контрольных точек непосредственно в исходном коде, которые позволяют проверять внутреннее устройство сервера во время выполнения. Некоторые из преимуществ реализации Performance Schema:

  • Данные Performance Schema доступны через механизм хранения PERFORMANCE SCHEMA в базе данных performance_schema , поэтому можно запрашивать данные с помощью стандартных операторов SQL.
  • Схема производительности доступна независимо от платформы, поэтому, хотя точные собранные данные будут различаться между платформами, способ ее работы с точки зрения администраторов баз данных остается неизменным. Это, например, означает, что можно создавать инструменты, которые могут работать во всех экземплярах MySQL. Прекрасным примером этого является коллекция представлений и хранимых процедур ps_helper, написанная Марком Лейтом.
  • Можно настроить схему производительности динамически, пока плагин включен (это значения по умолчанию, начиная с MySQL 5.6.6).
  • Легко добавить новые точки инструментария, включая добавление инструментовки к сторонним плагинам.
  • Включение схемы производительности прозрачно для обычных операций (хотя, очевидно, будет небольшое влияние на производительность — MySQL 5.6 в этом отношении намного лучше, чем MySQL 5.5).

Полный список деталей реализации см. В документации схемы производительности в Справочном руководстве MySQL.

В MySQL 5.5 количество информации в Performance Schema относительно ограничено. Если вы заглянете в базу данных performance_schema, сразу станет очевидным, что многое произошло между MySQL 5.5 и 5.6.6: первый имеет 17 представлений, второй — 52 представления. Информация, доступная в MySQL 5.5, в первую очередь ориентирована на ввод-вывод, тогда как MySQL 5.6 также — среди прочего — включает:

  • Информация о выписке (аналогична журналу медленных запросов)
  • Информация об использовании индекса, e.грамм. для идентификации неиспользуемых индексов
  • Возможность создания трассировки стека для данного потока
  • и т. д.

Схема производительности является предметом как доклада, так и практического занятия на предстоящей конференции MySQL Connect 2012, которая состоится 29 и 30 сентября в Сан-Франциско. Эти два занятия будут более подробно посвящены вышеуказанным функциям. Вы также можете узнать больше о сессиях по адресу:

Связанные

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *