Mysql описание – MySQL, MySQL — MySQL

что это такое, преимущества перед другими СУБД

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

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

Зачем нужна база данных?

Представьте, что вы ведете свой сайт. Если у вас небольшой статический проект, в котором содержится всего несколько html страниц, то применение базы данных(БД) вам вовсе и не нужно. Но это редкие случаи, когда создаваемые web-мастерами проекты остаются практически незаполненными. Как правило, сайты продолжают наполняться контентом, они становятся более загруженными. Такие проекты уже являются динамичными, и без базы данных вести их очень сложно.

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

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

Какими преимуществами обладает MySQL?

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

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

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

На заметку! В интернет-пространстве MySQL еще известна как «мускул». Такое название ей придумали веб-мастера. К примеру, когда говорят фразу «CMS на мускуле», это значит, что система управления контентом сайта (движок) применяет СУБД MySQL.

Как информация хранится в реляционных БД?

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

webmasterie.ru

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

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

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

habr.com

mysql Википедия

MySQL
Mysql.png
Тип реляционная СУБД
Разработчик MySQL AB (до 2008),
Sun Microsystems (2008—2010),
Oracle (с 2010)
Написана на Си[5] и C++[5]
Операционная система Linux[6], Microsoft Windows[6]
, macOS[6], FreeBSD[6] и Solaris[6]
Первый выпуск 23 мая 1995; 24 года назад (1995-05-23)
Последняя версия 8.0.17[1] (22 июля 2019; 4 месяца назад (2019-07-22))
Тестовая версия 8.0.19[2]
Читаемые форматы файлов MySQL Table Definition Format[d]
Создаваемые форматы файлов MySQL Table Definition Format[d]
Состояние Active
Лицензия GNU GPL v2[3] и проприетарная лицензия[4]
Сайт mysql.com
Commons-logo.svg Медиафайлы на Викискладе

ru-wiki.ru

База Данных MySQL типы данных MySQL Server MS Access



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


Типы данных SQL

Каждый столбец в таблице базы данных должен иметь имя и тип данных.

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

Примечание: Типы данных могут иметь разные имена в разных базах данных. И даже если имя такое же, размер и другие детали могут быть разными! Всегда проверяйте документацию!


Типы данных MySQL

В MySQL есть три основных типа данных: текст, число и дата.

Текстовые типы данных:

Тип данныхОписание
CHAR(size)Содержит строку фиксированной длины (может содержать буквы, цифры и специальные символы). Фиксированный размер указывается в скобках. Может хранить до 255 символов
VARCHAR(size)Содержит строку переменной длины (может содержать буквы, цифры и специальные символы). Максимальный размер указывается в скобках. Может хранить до 255 символов. Примечание: Если поместить большее значение, чем 255, оно будет преобразовано в текстовый тип
TINYTEXTСодержит строку с максимальной длиной 255 символов
TEXTСодержит строку с максимальной длиной 65 535 символов
BLOBДля BLOB-объектов (двоичные большие объекты). Удерживает до 65 535 байт данных
MEDIUMTEXTСодержит строку с максимальной длиной 16 777 215 символов
MEDIUMBLOBДля BLOB-объектов (двоичные большие объекты). Удерживает до 16 777 215 байт данных
LONGTEXTСодержит строку с максимальной длиной 4 294 967 295 символов
LONGBLOBДля BLOB-объектов (двоичные большие объекты). Удерживает до 4 294 967 295 байт данных
ENUM(x,y,z,etc.)Позволяет ввести список возможных значений. В списке Enum можно вывести до 65535 значений. Если вставленное значение отсутствует в списке, будет вставлено пустое значение.

Примечание:

html5css.ru

MySQL — Вікіпедія

MySQL — вільна система керування реляційними базами даних.

MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних. Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.

MySQL має подвійне ліцензування. MySQL може розповсюджуватися відповідно до умов ліцензії GPL. Але за умовами GPL, якщо якась програма використовує бібліотеки MySQL, то вона теж повинна розповсюджуватися за ліцензією GPL. Проте це може розходитися з планами розробників, які не бажають відкривати сирцеві тексти своїх програм. Для таких випадків передбачена комерційна ліцензія компанії Oracle, яка також забезпечує якісну сервісну підтримку. В разі використання та розповсюдження програмного забезпечення з іншими вільними ліцензіями, такими як BSD, Apache, MIT та інші, MySQL дозволяє використання бібліотек MySQL за ліцензією GPL

[5].

MySQL виникла як спроба застосувати mSQL до власних розробок компанії: таблиць, для яких використовувалися ISAM — підпрограми низького рівня для індексного доступу до даних. У результаті був вироблений новий SQL-інтерфейс, але API-інтерфейс залишився в спадок від mSQL. Звідки походить назва «MySQL» — достеменно не відомо. Розробники дають два варіанти: або тому, що практично всі напрацювання компанії починалися з префікса My, або на честь дівчинки на ім’я My, дочки Майкла Монті Віденіуса, одного з розробників системи

[6].

Логотип MySQL у вигляді дельфіна носить ім’я «Sakila». Він був обраний з великого списку запропонованих користувачами «імен дельфіна». Ім’я «Sakila» було відправлено Open Source-розробником Ambrose Twebaze.

В січні-лютому 2008 Sun Microsystems придбала розробника системи керування базами данних MySQL за $1 млрд. Після поглинання у 2009 році Sun Microsystems компанією Oracle Corporation MySQL стала власністю Oracle.

За час розвитку під орудою Oracle дедалі більше відокремлює MySQL від спільноти і робить процес розробки все менш прозорим. Наприклад, повернута практика поставки власницьких розширених функцій в Enterprise-версії MySQL, спостерігається приховування інформації про вразливості, зі складу виключений тестовий набір, закритий доступ до більшої частини системи відстеження помилок та припинено публікація згрупованого логу змін, що дозволяє судити про прив’язку патчів до конкретних змін.

Релізи[ред. | ред. код]

  • перший внутрішній випуск MySQL — 23 травня 1995
  • версія для систем Windows ((Windows 95 і NT))— 8 січня 1998
  • версія 3.23: бета від червня 2000, стабільний випуск у січні 2001
  • версія 4.0: бета від серпня 2002, стабільний випуск у березні 2003 (unions, query cache)
  • версія 4.1: бета від червня 2004, стабільний випуск у жовтні 2004 (r-trees, subqueries)
  • версія 5.0: бета від березня 2005, стабільний випуск у жовтні 2005 (cursors, stored procedures, triggers, views, XA transactions)
  • версія 5.1: розробка велась із листопада 2005, стабільний випуск в листопаді 2008
  • версія 5.4: бета в квітні 2009
  • версія 6.0: в розробці

MySQL 4.0[ред. | ред. код]

Не зважаючи на те, що версія 4.0 є застарілою, вона все ще має значне розповсюдження. Основні можливості цієї версії:

  • Практично повна реалізація ANSI SQL-99 разом з розширеннями.
  • Міжплатформенна сумісність.
  • Незалежні типи таблиць (MyISAM для швидкого читання, InnoDB для транзакцій і цілісності посилань).
  • Транзакції.
  • Підтримка SSL.
  • Кешування запитів.
  • Реплікація: один головний сервер на одного підлеглого, багато підлеглих на одного головного.
  • Повнотекстова індексація і пошук з використанням типу таблиць MyISAM.
  • Імплементована бібліотека бази даних.
  • Підтримка Юнікоду (UTF-8).
  • Таблиці InnoDB забезпечують відповідність вимогам ACID.
  • Вбудований сервер, який дозволяє включати MySQL в автономні додатки.

MySQL 4.1[ред. | ред. код]

Рекомендованою версією MySQL на 2005 рік є MySQL 4.1, яка вийшла 27 жовтня 2004 року. Вона містить такі нововведення:

  • Вкладені запити і похідні таблиці.
  • Нова система кодувань і сортувань.
  • Більш швидкий та гнучкий протокол клієнт-сервера із підтримкою підготовлених запитів, який забезпечує їх оптимальне виконання.
  • Нова програма установки та налаштування для Microsoft Windows і GNU/Linux.
  • Захищені через OpenSSL з’єднання між клієнтом та сервером.
  • Високо-оптимізована бібліотека, яка може бути використана в сторонніх програмах.
  • Повноцінна підтримка Юнікоду (UTF-8 і UCS2).
  • Стандартні просторові типи даних GIS для зберігання географічної інформації.
  • Покращений повнотекстовий пошук та система допомоги.

MySQL 5.0[ред. | ред. код]

Версія MySQL 5.0 вийшла 24 жовтня 2005 року, у цій версії була значно розширена функціональність, що ставить MySQL в один ряд із комерційними СКБД. Якщо ранішу СКБД MySQL звинувачували у недостатній підтримці стандарту SQL, то із появою п’ятої версії цієї популярної бази даних з’явилась практично повна підтримка стандарту SQL. MySQL 5.0 містить такі нововведення:

  • Збережувані процедури та функції.
  • Обробники помилок.
  • Курсори.
  • Тригери.
  • Представлення.
  • Інформаційна схема (так званий системний словник, що містить метадані).

MySQL 5.1[ред. | ред. код]

Версія MySQL 5.1 продовжує шлях до стандарту SQL:2003. MySQL 5.1 містить такі нововведення:[7][8]

  • Сегментування — можливість розбити одну велику таблицю на декілька частин, розміщених в різних файлових системах, базуючись на визначеній користувачем функції. При деяких умовах це може дати серйозне збільшення продуктивності та, крім того, полегшує масштабування таблиць.
  • Змінено поведінку ряду операторів для забезпечення більшої сумісності зі стандартом SQL:2003.
  • Порядкова реплікація (row-based реплікація), при якій в бінарний лог буде записуватись тільки інформація про реально змінені рядки таблиці замість оригінального (і, можливо, більш повільного) тексту запиту.
  • Вбудований планувальник робіт, що періодично запускаються. По синтаксису додання задачі схоже на додання тригера до таблиці; по ідеології — на crontab.
  • Додатковий набір функцій для обробки XML, реалізація підтримки XPath.
  • Нові засоби діагностики проблем і утиліти для аналізу продуктивності. Розширено можливості з керування вмістом лог-файлів, логи тепер можуть бути збережені і в таблицях general_log і в slow_log. Утиліта mysqlslap дозволяє провести тестування навантаження БД із записом часу реакції на кожний запит.
  • Для спрощення операції оновлення підготовлена утиліта mysql_upgrade, яка виконає перевірку всіх існуючих таблиць на предмет сумісності з новою версією, і при необхідності виконає належні коригування.
  • MySQL Cluster тепер йде як окремий продукт, який базується на MySQL 5.1 і сховищі NDBCLUSTER.
  • Значні зміни в роботі MySQL Cluster, такі, як, наприклад, можливість зберігання табличних даних на диску.
  • Повернення до використання вбудованої бібліотеки libmysqld, відсутньої в MySQL 5.0.
  • API для плагінів, що дозволяє завантажувати сторонні модулі, які розширюють функціональність (наприклад, повнотекстовий пошук), без перезапуску сервера.
  • Реалізація парсера повнотекстового пошуку у вигляді plug-in.
  • Новий рушій таблиць Maria (стійкий до збоїв клон MyISAM)[9], який у 2010 був перейменований на Aria та став основою форку MySQL від Монті Віденіуса під назвою MariaDB[10]
Тип таблиць Maria[ред. | ред. код]

Maria (починаючи з версії 5.2.x — Aria) — новий тип таблиць MySQL для зберігання даних. Maria являє собою розширену версію сховища MyISAM, з додаванням засобів збереження цілісності даних після краху.

Основні переваги Maria[11].

  • У разі краху проводиться відкат результатів виконання поточної операції або повернення в стан до команди LOCK TABLES. Реалізація через ведення логу операцій.
  • Можливість відновлення стану з будь-якої точки в журналі операцій, включаючи підтримку CREATE/DROP/RENAME/TRUNCATE. Може бути використана для створення інкрементальних бекапів, через періодичне копіювання лог файлу.
  • Підтримка всіх форматів стовпців MyISAM, розширена новим форматом «rows-in-block», що використовують сторінковий спосіб зберігання даних, при якому дані в стовпцях можуть кешуватися.
  • В майбутньому буде реалізовано два режими: транзакційний і без відображення в журналі транзакцій, для не критичних даних.
  • Розмір сторінки даних дорівнює 8Кб (в MyISAM 1Кб), що дозволяє досягти більш високої продуктивності для індексів за полями фіксованого розміру, але працює повільніше у разі індексування ключів змінної довжини.

MySQL 5.5[ред. | ред. код]

Гілка MySQL 5.5 містить ряд значних поліпшень, пов’язаних з підвищенням масштабованості та швидкодії, серед яких:

  • Використання за замовчуванням рушія InnoDB.
  • Підтримка напівсинхронного (semi-synchronous) механізму реплікації, заснованого на патчах до InnoDB від компанії Google.
  • Поліпшення функцій з партіціювання даних. Розширений синтаксис для розбиття великих таблиць на кілька частин, розміщених в різних файлових системах (partitioning). Додані операції RANGE, LIST і метод оптимізації «partition pruning».
  • Новий механізм оптимізації вкладених запитів та операцій JOIN.
  • Перероблена система внутрішніх блокувань.
  • Інтегровані патчі Google з оптимізацією роботи InnoDB на CPU з великою кількістю ядер.

MySQL — компактний багатопотоковий сервер баз даних. Характеризується високою швидкістю, стійкістю і простотою використання.

MySQL вважається гарним рішенням для малих і середніх застосувань. Сирцеві коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNIX-системах, де є підтримка багатопоточності, що підвищує продуктивність системи в цілому.

Можливості сервера MySQL:

  • простота у встановленні та використанні;
  • підтримується необмежена кількість користувачів, що одночасно працюють із БД;
  • кількість рядків у таблицях може досягати 50 млн;
  • висока швидкість виконання команд;
  • наявність простої і ефективної системи безпеки.
  • Apple — для динамічних сторінок на Apple.com, для багатьох внутрішніх проектів
  • Amazon.com — для багатьох внутрішніх проектів
  • Cox Communications — четвертий за розміром провайдер кабельного телебачення в США, має понад 3,600 таблиць та 2 мільярди рядків даних у базах і виконує приблизно 2 мільйони вставок на годину
  • Digg
  • flickr
  • Joomla!
  • Google — для програми Google Ads (колишній AdWords), пошукового рушія
  • LiveJournal — приблизно 300 мільйонів переглядів сторінок на день
  • MediaWiki і Вікіпедія
  • NASA — конвертувала базовану на Oracle систему закупівель на MySQL [1]
  • Nokia
  • WordPress
  • Yahoo!

MySQL версії 5.1 має 20 відомих серйозних помилок в додаток до 35 дефектів версії 5.0. Критичні помилки іноді не виправляються протягом тривалих періодів часу. Одним із прикладів є критична помилка, що відома з 2003 року.

MySQL показує низьку ефективність при використанні її як сховища даних, це частково пов’язано з нездатністю використовувати декілька процесорів для обробки одного запиту. До того ж, MySQL часто критикують за те, що ця СКБД має розходження зі стандартом SQL щодо трактування NULL значень і значення за замовчуванням.

Продаж MySQL Sun Microsystems у 2008 і наступне поглинання Sun з боку Oracle було несхвально сприйнято спільнотою вільного програмного забезпечення. Незалежними групами, в тому числі навколо колишніх розробників MySQL, були створені відгалуження (форки) проекту, серед яких

  • MySQL головний сайт проекту

uk.wikipedia.org

Типы данных в MySQL | Meliorem

Тип данных Размер Определение
INT(Size) 4 байта

Целое число от -2,147,483,648 до 2,147,483,647

INT UNSIGNED(Size) 4 байта Целое число от 0 до 4,294,967,295
INTEGER(Size) 4 байта Синоним для INT
TINYINT(Size) 1 байт Целое число от -128 до 127
TINYINT UNSIGNED(Size) 1 байт Целое число от 0 до 256
SMALLINT(Size) 2 байта Целое число от -32,768 до 32,767
SMALLINT UNSIGNED(Size) 2 байта Целое число от 0 до 465,535
MEDIUMINT(Size) 3 байта Целое число от -8,388,608 до 8,388,607
MEDIUMINT UNSIGNED(Size) 3 байта Целое число от 0 до 16777215
BIGINT(Size) 8 байт Целое число от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807
BIGINT UNSIGNED(Size) 8 байт Целое число от 0 до 18,446,744,073,709,551,615
FLOAT(M,D) 4 байта

Десятичное число от -3.402823466E+38 до -1.175494351E-38, 0 и от 1.175494351E-38 до 3.402823466E+38, где M — количество выводимых цифр в числе (<=25), D — количество цифр после точки. М и D — не обязательны. По умолчанию M=10, D=2.

Пример: для FLOAT(5,2) промежуток допустимых значений будет от-999.99 до 999,99.

FLOAT(M,D) UNSIGNED 4 байта Тоже что и FLOAT только без отрицательных значений
DOUBLE(M,D) 8 байт

Десятичное число от -1.7976931348623157E+308 до -2.2250738585072014E-308, 0, и от 2.2250738585072014E-308 до 1.7976931348623157E+308, где M — количество выводимых цифр в числе (25 <= M <= 53), D — количество цифр после точки. М и D — не обязательны. По умолчанию M=16, D=4.

Пример: для DOUBLE(5,2) промежуток допустимых значений будет от-999.99 до 999,99.

DOUBLE(M,D) UNSIGNED 8 байт Тоже что и DOUBLE, только не допускает отрицательные значения

REAL(M,D)
DOUBLE PRESICION(M,D)

8 байт Синоним для DOUBLE
DECIMAL(M,D) зависит от количества цифр Тоже что и DOUBLE, только число хранится в виде строки. По умолчанию M=10, D=0.
DECIMAL(M,D) UNSIGNED 8 байт Тоже что и DECIMAL, только не допускает отрицательные значения
DEC(M,D)
NUMERIC(M,D)
8 байт Синонимы для DECIMAL

meliorem.ru

MySQL | Типы данных

Типы данных MySQL

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

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

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

Символьные типы
  • CHAR: представляет стоку фиксированной длины.

    Длина хранимой строки указыватся в скобках, например, CHAR(10) — строка из десяти символов. И если в таблицу в данный столбец сохраняется строка из 6 символов (то есть меньше установленной длины в 10 символов), то строка дополняется 4 проблеми и в итоге все равно будет занимать 10 символов

  • VARCHAR: представляет стоку переменной длины.

    Длина хранимой строки также указыватся в скобках, например, VARCHAR(10). Однако в отличие от CHAR хранимая строка будет занимать именно столько места, скольо необходимо. Например, если определеная длина в 10 символов, но в столбец сохраняется строка в 6 символов, то хранимая строка так и будет занимать 6 символов плюс дополнительный байт, который хранит длину строки.

Начиная с MySQL 5.6 типы CHAR и VARCHAR по умолчанию используют кодировку UTF-8, которая позволяет использовать до 3 байт для хранения символа в заивисимости от языка ( для многих европейских языков по 1 байту на символ, для ряда восточно-европейских и ближневосточных — 2 байта, а для китайского, яполнского, корейского — по 3 байта на символ).

Ряд дополнительных типов данных представляют текст неопределенной длины:

  • TINYTEXT: представляет текст длиной до 255 байт.

  • TEXT: представляет текст длиной до 65 КБ.

  • MEDIUMTEXT: представляет текст длиной до 16 МБ

  • LARGETEXT: представляет текст длиной до 4 ГБ

Числовые типы
  • TINYINT: представляет целые числа от -127 до 128, занимает 1 байт

  • BOOL: фактически не представляет отдельный тип, а является лишь псевдонимом для типа TINYINT(1) и может хранить два значения 0 и 1. Однако данный тип может также в качестве значения принимать встроенные константы TRUE (представляет число 1) и FALSE (предоставляет число 0).

    Также имеет псевдоним BOOLEAN.

  • TINYINT UNSIGNED: представляет целые числа от 0 до 255, занимает 1 байт

  • SMALLINT: представляет целые числа от -32768 до 32767, занимает 2 байтa

  • SMALLINT UNSIGNED: представляет целые числа от 0 до 65535, занимает 2 байтa

  • MEDIUMINT: представляет целые числа от -8388608 до 8388607, занимает 3 байта

  • MEDIUMINT UNSIGNED: представляет целые числа от 0 до 16777215, занимает 3 байта

  • INT: представляет целые числа от -2147483648 до 2147483647, занимает 4 байта

  • INT UNSIGNED: представляет целые числа от 0 до 4294967295, занимает 4 байта

  • BIGINT: представляет целые числа от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, занимает 8 байт

  • BIGINT UNSIGNED: представляет целые числа от 0 до 18 446 744 073 709 551 615, занимает 8 байт

  • DECIMAL: хранит числа с фиксированной точностью. Данный тип может принимать два параметра precision и scale: DECIMAL(precision, scale).

    Параметр precision представляет максимальное количество цифр, которые может хранить число. Это значение должно находиться в диапазоне от 1 до 65.

    Параметр scale представляет максимальное количество цифр, которые может содержать число после запятой. Это значение должно находиться в диапазоне от 0 до значения параметра precision. По умолчанию оно равно 0.

    Например, в определении следующего столбца:

    salary DECIMAL(5,2)

    Число 5 — precision, а число 2 — scale, поэтому данный столбец может хранить значения из диапазона от -999.99 до 999.99.

    Размер данных в байтах для DECIMAL зависит от хранимого значения.

    Данный тип также имеет псевдонимы NUMERIC, DEC, FIXED.

  • FLOAT: хранит дробные числа с плавающей точкой одинарной точности от -3.4028 * 1038 до 3.4028 * 1038, занимает 4 байта

    Может принимать форму FLOAT(M,D), где M — общее количество цифр, а D — количество цифр после запятой

    .
  • DOUBLE: хранит дробные числа с плавающей точкой двойной точности от -1.7976 * 10308 до 1.7976 * 10308, занимает 8 байт. Также может принимать форму DOUBLE(M,D), где M — общее количество цифр, а D — количество цифр после запятой.

    Данный тип также имеет псевдонимы REAL и DOUBLE PRECISION, которые можно использовать вместо DOUBLE.

Типы для работы с датой и временем
  • DATE: хранит даты с 1 января 1000 года до 31 деабря 9999 года (c «1000-01-01» до «9999-12-31»). По умолчанию для хранения используется формат yyyy-mm-dd. Занимает 3 байта.

  • TIME: хранит время от -838:59:59 до 838:59:59. По умолчанию для хранения времени применяется формат «hh:mm:ss». Занимает 3 байта.

  • DATETIME: объединяет время и дату, диапазон дат и времени — с 1 января 1000 года по 31 декабря 9999 года (с «1000-01-01 00:00:00» до «9999-12-31 23:59:59»). Для хранения по умолчанию используется формат «yyyy-mm-dd hh:mm:ss». Занимает 8 байт

  • TIMESTAMP: также хранит дату и время, но в другом диапазоне: от «1970-01-01 00:00:01» UTC до «2038-01-19 03:14:07» UTC. Занимает 4 байта

  • YEAR: хранит год в виде 4 цифр. Диапазон доступных значений от 1901 до 2155. Занимает 1 байт.

Тип Date может принимать даты в различных форматах, однако непосредственно для хранения в самой бд даты приводятся к формату «yyyy-mm-dd». Некоторые из принимаемых форматов:

Для времени тип Time использует 24-часовой формат. Он может принимать время в различных форматах:

Примеры значений для типов DATETIME и TIMESTAMP:

  • 2018-05-25 19:21:34
  • 2018-05-25 (хранимое значение 2018-05-25 00:00:00)
Составные типы
  • ENUM: хранит одно значение из списка допустимых значений. Занимает 1-2 байта

  • SET: может хранить несколько значений (до 64 значений) из некоторого списка допустимых значений. Занимает 1-8 байт.

Бинарные типы
  • TINYBLOB: хранит бинарные данные в виде строки длиной до 255 байт.

  • BLOB: хранит бинарные данные в виде строки длиной до 65 КБ.

  • MEDIUMBLOB: хранит бинарные данные в виде строки длиной до 16 МБ

  • LARGEBLOB: хранит бинарные данные в виде строки длиной до 4 ГБ

metanit.com

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

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