Почему и для чего mysql. SQL "для чайников": что нужно знать начинающим? Что такое MySQL

Если Вы видите такие термины как: MySQL, SQL, база данных, БД, database, DB, таблица, СУБД, то знайте, речь идет о БАЗЕ ДАННЫХ!
Конечно все это немного разные вещи, но если Вы в этом не разбираетесь, то не забивайте себе голову, в конце статьи расскажем кому интересно.

База Данных, как Вы уже могли догадаться, это ящик с информацией. В этот ящик информацию можно положить, удалить или найти. Любой сайт использует сервер для хранения данных, будь то список юзеров, комментарии посетителей, или счетчик посещений.
Но мы используем Базу Данных для сервера кс1.6. Для чего?
Например для статистики игроков, или список банов, админки и пароли тоже храним в базе.

Так почему бы не хранить все эти данные на сервере в файлах? Зачем нам какой то SQL?
Все очень просто!
Чтобы серверу получить необходимую информацию из файла, нужно прочитать сначала 1-ую строку, посмотреть есть в ней то что нужно, если нет то, 2-ую и тд, пока не найдет то что нужно.
MySQL же работает так: друг, я знаю где это лежит! Держи!

Круто да? Почему MySQL такая быстрая штука? Правильней сказать, что база данных это не ящик, а таблица. Смотрите как выглядит например статистика игроков:

Или вот так выглядит хранение банов:

Плагин посылает запрос в базу, типа: проверь, есть ли игрок со стим айди STEAM_0:0_123456789 в таблице `amx_bans` с не истекшим сроком бана
MySQL говорит: да, есть, вот такая причина бана и истечет срок через 10 дней. Плагин в свою очередь не пускает игрока на сервер.
Все данные в каждой колонке таблицы имеет свой тип: INT целое число, varchar текст, есть еще BOOL, FLOAT и куча других типов, их значения занимают мало места, благодаря «индексам» таблица сортируется и еще тонна всяких штук, благодаря которым из миллиона строк в таблице с банами, mysql найдет игрока меньше чем за секунду.
В файлах, на сервере кс, обычно хранят мало информации, потому что сервак просто зависнет если это будет не так. Помните да, что csstats.dat может очиститься и статистика игроков обнулится, этого не произойдет если использовать CsStats MySQL !

А где лежат эти таблицы MySQL?

MySQL это типа программа, запущенная на компе. Это такой же сервер как и Counter-Strike. Все популярные хостинги предоставляют своим клиентам доступ к Базе Данных.

Как подключиться к MySQL?

Разберем какие данные нужны для подключения сервера кс1.6 к mysql

  • IP сервера MySQL - это IP адрес на котором находится MySQL. Он может быть буквенный(mysql.hosting.ru) или цифровой(12.34.56.78)
  • DataBase - это имя базы данных, в которой будут находиться таблицы со статистикой игроков, банами и прочим
  • User - имя пользователя, который имеет доступ к базе данных DataBase и вносить в ее таблицы изменения и и тп
  • Пароль - пароль, чтобы никто кроме вас и вашего сервера не имел доступ

Эти данные вводите например в конфиг csstats_mysql.cfg , при первом включении плагин создает таблицу под названием csstats_players в базе данных DataBase . И потом уже добавляет в нее игроков.

Брать эти данные нужно у хостера! Поищите их где ни будь в панели, или напишите хостеру в поддержку

Связь сервера и сайта через MySQL

Тут не совсем связь, сервер пишет статистику в MySQL, а сайт берет информацию из MySQL и показывает ее пользователю в красивом оформлении.
Просто сайт своими средствами не может получить доступ, например к csstats.dat , но легко может получить доступ к БД

Как посмотреть/изменить/удалить данные в базе?

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


Тут можно создавать, удалять, очищать, обновлять и все все все.

Что такое SQL запросы?

Чтобы добавить/изменить/удалить или просмотреть запись в таблице, нужна сказать mysql чего мы хотим, человеческий язык он конечно не понимает, но понимает SQL запросы.
Чтобы добавить нового игрока в статистику игроков csstats_mysql , плагин посылает запрос:

INSERT INTO `csstats_players` (`nick`,`authid`,`ip`,`frags`,`deaths`) VALUES ("Player", "STEAM_0:0:123456789", "123.123.123.123", "10", "2")

Чтобы показать статистику игрока плагин шлет:

SELECT `nick`,`authid`,`ip`,`frags`,`deaths` FROM `csstats_players` WHERE `authid`="STEAM_0:0:123456789" LIMIT 1

Это просто небольшие примеры SQL запросов, подробнее можете почитать в интернете.
Вы можете тоже слать SQL запросы в , но вряд ли они Вам понадобятся, просто знайте;)

Термины

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

Ошибки MySQL, что они означают и как с ними бороться

Если в error_ логах Вы увидите ошибку, типа: Ошибка MySQL! или MySQL Error! и подобное, ЗНАЙТЕ! Это ошибка MySQL, а не плагина!!!
Если Вы не знаете английский, воспользуйтесь переводчиком, это не сложно.
Тут разберем несколько популярных ошибок


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

Разработка MySQL

Компания tcx разработала сервер MySQL для внутренних потребностей. Главной задачей была быстрая обработка баз данных большого объема. Компания утверждает, что MySQL применяется с 1996 года на сервере, имеющим более 40 БД. В общей сложности эти базы содержат около 10 000 таблиц, более 500 из которых имеют 7 миллионов строк.

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

Стоимость MySQL

MySQL является бесплатным сервером для некоммерческого использования. В противном случае необходима покупка лицензии. Она обойдется минимум в 190 евро.

Возможности сервера MySQL

MySQL при стандарте ANSI 92 поддерживает язык запросов SQL. К этому стандарту разработано множество расширений, которых нет ни в других системах управления базами данных.

Основной перечень возможностей сервера можно впечатляет:

Недостатки сервера MySQL

Скорость сервера повлияла на некоторые параметры. Разработчики пожертвовали некоторыми требованиями в СУБД.

В MySQL отсутствуют:

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

Создатели сервера утверждают, что именно последние три пункта повлияли на скорость. Если эти возможности будут реализованы, сервер перестанет славится своим быстродействием. Перечисленные возможности не являются определяющими при создании приложений. В общем итоге, скорость и невысокая стоимость сформировали высокую популярность MySQL.

Механизмы обеспечения безопасности сервера MySQL

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

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

Например, администратор может предоставить пользователю привилегии, достаточные для подключения к отдельной базе данных. Это создает ограничение в доступе к другим серверам для пользователя. Более того, администратор может разрешить лишь некоторые действия. Например, работу с базой данных, модификацию, выбор и вставку данных. Любая другая операция будет недоступна данному пользователю и попытка осуществить ее будет безуспешной из-за отсутствия у него соответствующих прав. Так же смотрите выбор хостингов Украины нашего рейтинга

MySQL представляет собой очень популярную систему управления базами данных (СУБД), разрабатываемую фирмой MySQL АВ. MySQL АВ является коммерческой компанией, строящей свой бизнес на сервисах, сосредоточенных на базе данных MySQL и базирующейся в Швеции. Дальнейшую поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB.

Официально MySQL произносится как «Май-Эс-Ку-Эль», а не как MY-SEQUEL. Это столь распространенная ошибка, что разработчики MySQL даже поместили соответствующее объявление на своем сайте.

Название возникло из сокращения (а вернее, слияния) слов My SQL, что на английском языке значит «мой SQL». Названию около десяти лет, оно прижилось еще в те времена, когда пакет не был коммерческой разработкой.

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

Пока им это удается. Рассмотрим все это более подробно и введем некоторые базовые термины.

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

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

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

MySQL является реляционной СУБД

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

MySQL использует язык запросов SQL

Поскольку данных много, нужен какой-то способ быстро получать именно те, которые сейчас понадобились. Для этого надо иметь возможность указать серверу найти данные, отвечающие неким критериям. С этой целью был разработан язык SQL (Structured Query Language, язык структурированных запросов), наиболее общий стандартизированный язык, используемый, чтобы обращаться к компьютерным базам данных. Именно с этим языком работают почти все современные СУБД. Вот тут возникает одна проблема. Дело в том, что если уж создается некий универсальный язык для работы с базами данных, то он должен быть четко стандартизован.

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

В конце концов, после бурных дебатов, в 1992 году стандарт на SQL был наконец принят и получил название ANSI SQL92 (также его назвали классическим SQL). Но было уже поздно. В разных СУБД SQL уже использовался везде, но свой у каждого разработчика.

Были попытки привести их к общему знаменателю, но ничего не вышло: стандарт определил лишь общие понятия и правила, очень многое оставив на совести разработчиков конкретной реализации. Так появились диалекты SQL. В частности, MySQL использует весьма специфический диалект SQL, далеко не во всем соответствующий стандарту. Именно он и рассмотрен в здесь, в самоучителе. В нём отмечены наиболее принципиальные отличия MySQL от ANSI SQL.

Вообще-то MySQL старается соответствовать ANSI SQL, где это возможно. Более того, сервер MySQL может быть запущен в режиме полного соответствия ANSI SQL, но тогда отменятся многие дополнительные возможности MySQL.

SQL представляет собой язык управления базами данных. Часто его называют языком программирования, но это не так. Хоть он и является языком для общения с компьютерными программами, но к программированию управление базами данных не имеет никакого отношения. Это совсем другая область компьютерной технологии.


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

Разработка MySQL

MySQL разрабатывался компанией tcx для внутренних потребностей, заключающихся в быстрой обработке крупных баз данных. В компании утверждают, что применяют MySQL с 1996 года на определенном сервере, который имеет более 40 БД, содержащих около 10 тысяч таблиц, из которых больше чем 500 имеют около 7 миллионов строк.

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

Цена MySQL

MySQL – это бесплатный сервер для некоммерческого применения. В других случаях понадобится покупка лицензии, цена которой от 190 евро.

Возможности сервера MySQL

MySQL поддерживается языком запросов SQL при стандарте ANSI 92, а также имеет много расширений к данному стандарту, которые не существуют ни в одной, ни в другой СУБД.

В небольшой список перечни возможностей сервера вошли:

Недостатки сервера MySQL

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

В этом сервере отсутствует:

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

Таблицы привилегий сервера MySQL

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

Которая ранее приобрела шведскую компанию MySQL AB . Продукт распространяется как под GNU General Public License , так и под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации .

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP , AppServ , LAMP и в портативные сборки серверов Денвер , XAMPP . Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM , поддерживающие полнотекстовый поиск, так и таблицы InnoDB , поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

Сообществом разработчиков MySQL созданы различные ответвления кода, такие как Drizzle (англ. ), OurDelta, Percona Server, и MariaDB . Все эти ответвления уже существовали на момент поглощения компании Sun корпорацией Oracle.

О происхождении MySQL

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

Логотип MySQL в виде дельфина носит имя «Sakila». Он был выбран из большого списка предложенных пользователями «имён дельфина». Имя «Sakila» было отправлено -разработчиком Ambrose Twebaze.

Лицензирование

MySQL имеет двойное лицензирование. MySQL может распространяться в соответствии с условиями лицензии GPL . Однако по условиям GPL, если какая-либо программа включает исходные коды MySQL, то она тоже должна распространяться по лицензии GPL. Это может расходиться с планами разработчиков, не желающих открывать исходные тексты своих программ. Для таких случаев предусмотрена коммерческая лицензия, которая также обеспечивает качественную сервисную поддержку.

Платформы

MySQL портирована на большое количество платформ: AIX , BSDi , FreeBSD , HP-UX , Linux , Mac OS X , NetBSD , OpenBSD , OS/2 Warp, SGI IRIX , Solaris , SunOS , SCO OpenServer, SCO UnixWare, Tru64 , Windows 95 , Windows 98 , Windows NT , Windows 2000 , Windows XP , Windows Server 2003 , WinCE, Windows Vista и Windows 7 . Существует также порт MySQL к OpenVMS . Важно отметить, что на официальном сайте СУБД для свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули СУБД MySQL.

Языки программирования

История выпусков

MySQL 4.0

Несмотря на то, что версия 4.0 является устаревшей, она всё ещё имеет значительное распространение. Основные возможности этой версии:

  • практически полная реализация ANSI SQL-99, плюс расширения;
  • межплатформенная совместимость;
  • независимые типы таблиц (MyISAM для быстрого чтения, InnoDB для транзакций и ссылочной целостности);
  • поддержка SSL ;
  • кэширование запросов;
  • репликация : один головной сервер на одного подчинённого, много подчинённых на одного головного;
  • полнотекстовая индексация и поиск с использованием типа таблиц MyISAM;
  • внедрённая библиотека базы данных;
  • поддержка Юникода (UTF-8);
  • таблицы InnoDB , обеспечивающие соответствие требованиям ACID ;
  • встроенный сервер, позволяющий включать MySQL в автономные приложения.

MySQL 4.1

  • вложенные запросы и производные таблицы.
  • новая система кодировок и сортировок;
  • более быстрый и гибкий протокол клиент-сервер с поддержкой подготовленных запросов, обеспечивающий их оптимальное исполнение;
  • новая программа установки и настройки для Microsoft Windows и 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 содержит следующие нововведения.

  • Сегментирование - возможность разбить одну большую таблицу на несколько частей, размещенных в разных файловых системах, основываясь на определенной пользователем функции. При определенных условиях это может дать серьёзное увеличение производительности и, кроме того, облегчает масштабирование таблиц.
  • Изменено поведение ряда операторов, для обеспечения большей совместимости со стандартом SQL2003.
  • Построчная репликация (англ. row-based replication ), при которой в бинарный лог будет записываться только информация о реально измененных строках таблицы вместо оригинального (и, возможно, медленного) текста запроса. Построчную репликацию можно использовать только для определенных типов sql-запросов, в терминах MySQL - смешанная репликация (англ. mixed replication ).
  • Встроенный планировщик периодически запускаемых работ. По синтаксису добавление задачи похоже на добавление триггера к таблице, по идеологии - на 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).

Тип таблиц Maria

Maria (начиная с версии 5.2.x - Aria) - расширенная версия хранилища MyISAM , с добавлением средств сохранения целостности данных после краха.

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

MySQL 5.5

Ветка MySQL 5.5 базируется на невыпущенной серии MySQL 5.4 и содержит ряд значительных улучшений, связанных с повышением масштабируемости и производительности, среди которых:

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

MySQL 6.0

Версия MySQL 6.0 была заморожена на стадии альфа-тестирования. Первоначально было принято решение о создании версии 5.2, вскоре эта версия была переименована в 6.0. Однако, позже информация о MySQL 6.0 исчезла с сайта, а разработчики сосредоточились на версии 5.5 и следующей за ней версии 5.6.

Одним из основных нововведений версии 6.0 планировался новый тип таблиц Falcon, разработанный в качестве потенциальной замены для InnoDB компании Innobase , приобретённой компанией Oracle . В связи с приобретением в 2010 году Sun Microsystems тем же Oracle , судьба Falcon остаётся под вопросом.

Технические характеристики

Максимальные размеры таблиц

Максимальный размер таблиц в MySQL 3.22 до 4 ГБ, в последующих версиях максимальный размер до 8 млн ТБ (2 63 байт).

Размер таблицы ограничен её типом. В общем случае тип MyISAM ограничен предельным размером файла в файловой системе операционной системы . Например в NTFS этот размер теоретически может быть до 32 эксабайт . В случае InnoDB одна таблица может храниться в нескольких файлах, представляющих единое табличное пространство . Размер последнего может достигать 64 терабайт .

В отличие от MyISAM в InnoDB имеется значительное ограничение на количество столбцов, которое можно добавить в одну таблицу. Размер страницы памяти по умолчанию составляет 16 килобайт, из которых под данные отведено 8123 байта. Размер указателя на динамические поля составляет 20 байт. Таким образом, в случае использования динамического формата строки (ROW_FORMAT=DYNAMIC), одна таблица может вместить максимум 409 столбцов типа blob или text.

Локализация

Начиная с версии 4.1 в СУБД MySQL внедрена новая система кодировок и сортировок. При использовании кодировки Windows-1251, перед выполнением SQL-инструкций необходимо настроить кодировку соединения при помощи операторов:

SET character_set_client= "cp1251" ; SET character_set_results= "cp1251" ; SET character_set_connection= "cp1251" ;

Эти три оператора эквивалентны вызову одного оператора:

SET NAMES "cp1251"

Переменная character_set_client устанавливает кодировку данных отправляемых от клиента, переменная character_set_results устанавливает кодировку данных отправляемых клиенту, переменная character_set_connection устанавливает кодировку, в которую преобразуется информация пришедшая от клиента, перед выполнением запроса на сервере.

При использовании Юникода UTF-8 этот оператор выглядит следующим образом:

SET NAMES "utf8"

Кодировка ISO 8859-5 не поддерживается.

Примечания

См. также

Ссылки

  • mysql.com - официальный сайт MySQL (англ.)
  • Документация на сайте разработчиков MySQL (англ.)

Литература

  • В. Васвани. MySQL: использование и администрирование = MySQL Database Usage & Administration. - М .: «Питер» , 2011. - 368 с. - ISBN 978-5-459-00264-5
  • Стив Суэринг, Тим Конверс, Джойс Парк. PHP и MySQL. Библия программиста, 2-е издание = PHP 6 and MySQL 6 Bible. - М .: «Диалектика», 2010. - 912 с. - ISBN 978-5-8459-1640-2
  • Роберт Шелдон, Джоффрей Мойе. MySQL 5: базовый курс = Beginning MySQL. - М .: «Диалектика», 2007. - 880 с. - ISBN 978-5-8459-1167-4
  • MySQL на примерах. - Спб.: «БХВ-Петербург», 2008. - С. 952. - ISBN 978-5-9775-0066-1
  • Поль Дюбуа. MySQL, 3-е издание = MySQL, 3ed. - М .: «Вильямс», 2006. - 1168 с. - ISBN 5-8459-1119-2
  • Кузнецов Максим, Симдянов Игорь. MySQL 5. В подлиннике. - Спб.: «БХВ-Петербург», 2006. - С. 1024. - ISBN 5-94157-928-4
  • Кузнецов Максим, Симдянов Игорь. Самоучитель MySQL 5. - Спб.: «БХВ-Петербург», 2006. - С. 560. - ISBN 5-94157-754-0



Top