Verification: a143cc29221c9be0

Mysql большая база данных php

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

База данных (сокращенно БД) - это место, в котором хранятся данные сайта.

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

База данных состоит из таблиц. Что такое таблица вы знаете из жизни: это строки и столбцы. А на пересечении строк и столбцов располагаются ячейки.

В базах данных столбцы часто называют полями.

Это легко можно вообразить себе, представив документ Excel. Базой данных будет являться сам документ (книга), а таблицами - каждый лист этой книги.

PhpMyAdmin

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

PhpMyAdmin (читается PHPмайадмин, часто пишут аббревиатуру PMA или ПМА) - это оболочка для работы с базами данных прямо у вас в браузере.

Вы можете править содержимое таблиц, создавать новые базы данных и таблицы - и все это через веб-интерфейс, не зная SQL.

Видео на PhpMyAdmin

https://youtu.be/st9A8d4J6Js

Задачи на PhpMyAdmin

Давайте откроем PhpMyAdmin и приступим к изучению его интерфейса.

Чтобы вам было проще с ним освоится, сделайте следующие практические задачи:

  1. Создайте базу данных test.
  2. В ней создайте таблицу users.
  3. В этой таблице сделайте 4 поля (столбца):
    • id (для него нужно поставить галочку AUTO_INCREMENT или A.I.), тип integer,
    • name, тип varchar, 32 символа,
    • age, тип integer,
    • birthday (англ. день рождения), тип date.
  4. Найдите вкладку 'вставить' и с ее помощью вставьте несколько строк в эту таблицу При этом поле id заполнять не нужно! Оно заполнится автоматически!
  5. Поредактируйте какую-нибудь запись.
  6. Удалите какую-нибудь запись.
  7. Поменяйте кодировку для таблицы и для всей базы данных (на utf8_general_ci).
  8. Переименуйте таблицу.
  9. Переименуйте базу данных.

AUTO_INCREMENT

Обратите внимание на то, что мы создали поле id и поставили ему галочку AUTO_INCREMENT. Это очень важный шаг!

Теперь при вставке новой записи (строки) в таблицу это поле будет заполняться автоматически уникальным номером.

При этом если мы удалим строку с каким-то id (например 1), то такого id больше никогда не будет.

Зачем нужно поле id?

Затем, чтобы мы всегда могли обратиться к конкретной строке по ее id, например с целью удаления или редактирования.

Типы переменных

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

  • integer – целочисленный.
  • text – большое текстовое поле.
  • varchar – не очень большое текстовое поле, при этом мы должны задать его размер (он должен быть степенью двойки: 8, 16, 32, 64, 128, 256 и т.д.).
  • date - поле для хранения даты (дата хранится в SQL-формате: год-месяц-день, пример: 2013-06-24).

Как работать с mySQL через PHP

Работа с БД из PHP осуществляется всего лишь с помощью трех функций:

  • mysqli_connect – соединение с сервером и базой данных.
  • mysqli_query - универсальная функция отправки запросов к БД, с помощью нее можно сделать все.
  • mysqli_error - вывод ошибок.

Далее подробнее про каждую из функций.

Устанавливаем соединение с БД

Данный материал есть также в виде видео: https://youtu.be/J8GFuyA_k_8

Прежде, чем начать работать с базой данных из PHP, нужно установить соединение с сервером, на котором эта база находится.

Делается это с помощью функции PHP mysql_connect, которая принимает 3 параметра: имя хоста (сервера), имя пользователя, под которым мы работаем с базой и пароль для этого пользователя.

Если вы работаете на своем компьютере то это будут 'localhost', 'root' и пароль в виде пустой строки (на некоторых серверах он тоже может быть root). Если ваша база данных в интернете - то эти данные дает вам хостер.

Давайте установим соединение с базой данных:

Посылаем запросы к базе данных

Запросы к базе данных представляют собой обычные строки, которые мы вставляем в функцию PHP mysqli_query (первым параметром это функция принимает переменную, в которую мы записали результат mysqli_connect, в нашем случае это переменная $link):

0");

	//Мы можем формировать эту строку с помощью переменных:
	$table = 'workers'; //задаем имя таблицы в переменной
	mysqli_query($link, "SELECT*FROM ".$table." WHERE id>0");
?>

Принято правило, по которому команды SQL следует писать в верхнем регистре (то есть большими буквами), а все остальное - в нижнем.

Это относиться к командам SELECT, UPDATE, FROM, DELETE, WHERE и другим такого рода.

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

Отлавливаем ошибки базы данных

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

Поэтому при работе с БД у них постоянно возникают сложности. Что-то не работает, а что - не понятно, так как ошибок они не видят, так как PHP не выводит ошибки mySQL, если ему об этом не сказать

Чтобы вывести ошибки, следует пользоваться конструкцией or die ( mysqli_error($link) ), которую необходимо добавлять к каждому запросу к БД.

Смотрите пример: mysqli_query($link, $query) or die( mysqli_error($link) );

Таким образом вы сразу будете получать сообщения об ошибках синтаксиса SQL. Обратите внимание на то, что на рабочем сайте эти конструкции следует удалять, чтобы пользователи и тем более хакеры не видели ошибок БД.

Проблемы с кодировками

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

Чтобы не было проблем с кодировками следует придерживаться простых правил:

  • Базу данных следует создавать в кодировке utf8_general_ci.
  • Документ PHP должен быть в кодировке utf8.
  • Таблицы в БД должны быть в utf8_general_ci.
  • На всякий случай сразу после команды mysqli_connect добавьте такое запрос: mysqli_query($link, "SET NAMES 'utf8'");

Начнем практиковаться

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

Итак, создайте свою первую базу данных с помощью PhpMyAdmin.

Назовите ее "test".

Создайте в этой базе новую таблицу.

Назовите ее "workers" (англ. работники).

В ней создайте 4 столбца (столбцы по другому называются поля):

  • id – тип integer, не забудьте поставить ему галочку AUTO_INCREMENT (чтобы в этом столбце номера проставлялись автоматически).
  • name (англ. имя) – тип varchar, размером в 256 знаков.
  • age (англ. возраст) - тип integer.
  • salary (англ. зарплата) - тип integer.

Ее заполните тестовыми данными, как показано в таблице ниже (этот шаг обязателен, так как дальше все задачи будут по этой таблице):

id name age salary
1 Дима 23 400
2 Петя 25 500
3 Вася 23 500
4 Коля 30 1000
5 Иван 27 500
6 Кирилл 28 1000

Итак, у нас есть таблица с работниками фирмы, в которой указаны их имена, возрасты и зарплаты (в $). Далее мы будем работать с этой таблицей.

Тестируем работоспособность

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

Просто скопируйте этот код и запустите его у себя:

 0";

	//Делаем запрос к БД, результат запроса пишем в $result:
		$result = mysqli_query($link, $query) or die(mysqli_error($link));

	//Проверяем что же нам отдала база данных, если null – то какие-то проблемы:
		var_dump($result);
?>

Если var_dump($result) вернет resource, то все работает, если же null – то возникли какие-то проблемы. в новых версиях PHP в $result будет лежать объект с данными (всегда будет непустой). Если обработать его через mysqli_fetch_assoc будет или результат или null (про mysqli_fetch_assoc см ниже или видео https://youtu.be/J8GFuyA_k_8 , которое уже было выше в пункте "Устанавливаем соединение")

В таком случае проверьте все еще раз, уберите последовательно все ошибки PHP, если таковые есть.

Что такое MySQL?

  • MySQL — это система баз данных, используемая в Интернете
  • MySQL — это система баз данных, которая работает на сервере
  • MySQL идеально подходит как для малых и больших приложений
  • MySQL очень быстрый, надежный и простой в использовании
  • MySQL использует стандартный SQL
  • MySQL компилируется на нескольких платформах
  • MySQL бесплатно скачать и использовать
  • MySQL разрабатывается, распространяется и поддерживается корпорацией Oracle
  • MySQL назван в честь соучредителя дочь Монти Видениус: My

Данные в базе данных MySQL хранятся в таблицах. Таблица представляет собой набор связанных данных и состоит из столбцов и строк.

Базы данных полезны для хранения информации категорически. У компании может быть база данных со следующими таблицами:

  • Employees
  • Products
  • Customers
  • Orders

PHP + MySQL базы данных системы

  • PHP в сочетании с MySQL являются кросс-платформенными (вы можете развиваться в Windows и служить на платформе UNIX)

Запросы к базам данных

Запрос — это вопрос или запрос.

Мы можем запросить конкретную информацию в базе данных и вернуть набор записей.

Посмотрите на следующий запрос (с помощью стандартного SQL):

SELECT LastName FROM Employees

В вышеприведенном запросе все данные в столбце "Фамилия" выбираются из таблицы "сотрудники".

Чтобы узнать больше о SQL, пожалуйста, посетите наш учебник SQL.


Скачать базу данных MySQL

Если у вас нет PHP-сервера с базой данных MySQL, вы можете скачать его бесплатно здесь: http://www.MySQL.com


Что такое MySQL?

  • MySQL - система баз данных
  • MySQL - используется в интернете
  • MySQL - работает на сервере
  • MySQL - подходит для малых и больших приложений
  • MySQL - быстрый, надежный и прост в использовании
  • MySQL - использует стандарт SQL
  • MySQL - компилирует на нескольких платформах
  • MySQL - бесплатный
  • MySQL - разрабатывается, распространяется и поддерживается Корпорацией Oracle
  • MySQL - назван в честь дочери соучредителя Монти Видениуса: My

Данные MySQL базы хранятся в таблицах. Таблица представляет собой совокупность связанных данных и состоит из столбцов и строк

Базы данных используются для хранения информации. Компания MySQL, имеет база данных со следующими таблицами:

  • Служащие
  • Продукция
  • Клиенты
  • Заказы

PHP + MySQL Система баз данных

  • В сочетании PHP с MySQL - кросс-платформа (можно разрабатывать в Windows и Unix-платформе)

Запрос базы данных

Запрос - это вопрос или требование.

Можно запросить у базы данных конкретную информацию и вернуть набор записей.

Посмотрим на следующий запрос (используя стандартный SQL):

SELECT LastName FROM Employees - (выбрать фамилию сотрудников)

Приведенный выше запрос выбирает все данные в "LastName" из колонки в таблице "Employees".

Чтобы узнать больше о SQL, пожалуйста, посетите наш учебник SQL.


Скачать базы данных MySQL

Если у вас нет сервера PHP с базой данных MySQL, вы можете скачать ее бесплатно здесь: https://www.mysql.com


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

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

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

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

Таблицы базы данных

Данные в базе данных MySQL хранятся в таблицах. Таблица — это набор связанных данных, состоящий из столбцов и строк.

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

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

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

Каждый столбец представляет собой поле данных в соответствующей таблице. Например, поля данных имени, адреса и телефона в таблице являются столбцами.

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

Что такое SQL?

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

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

Запросы к базе данных

Запрос — это вопрос или просьба.

Мы можем запросить конкретную информацию в базе данных и получить набор записей.

Посмотрите на следующий запрос (используя стандартный SQL):

SELECT LastName FROM Employees

Приведенный выше запрос выбирает все данные в столбце LastName (Фамилия) из таблицы Employees (Сотрудники).

MySQL строковые функции

Функции Описание
ASCII Возвращает код числа, представляющий конкретный символ
CHAR_LENGTH Возвращает длину указанной строки (в символах)
CHARACTER_LENGTH Возвращает длину указанной строки (в символах)
CONCAT Объединяет два или более выражений вместе
CONCAT_WS Объединяет два или более выражений вместе и добавляет разделитель между ними
FIELD Возвращает положение значения в списке значений
FIND_IN_SET Возвращает положение строки в списке строк
FORMAT Форматирует число как формат "#, # # #. # #", округляя его до определенного числа десятичных разрядов
INSERT Вставляет подстроку в строку в заданной позиции для определенного числа символов
INSTR Возвращает позицию первого вхождения строки в другую строку
LCASE Преобразует строку в нижний регистр
LEFT Извлекает подстроку из строки (начиная с левого)
LENGTH Возвращает длину указанной строки (в байтах)
LOCATE Возвращает позицию первого вхождения подстроки в строку
LOWER Преобразует строку в нижний регистр
LPAD Возвращает строку, которая заполнена с заданной строкой до определенной длины
LTRIM Удаление начальных пробелов из строки
MID Извлекает подстроку из строки (начиная с любой позиции)
POSITION Возвращает позицию первого вхождения подстроки в строку
REPEAT Повторяет строку указанное количество раз
REPLACE Заменяет все вхождения указанной строки
REVERSE Изменяет строку и возвращает результат
RIGHT Извлекает подстроку из строки (начиная справа)
RPAD Возвращает строку, которая имеет правую прокладку с указанной строкой до определенной длины
RTRIM Удаляет замыкающие пробелы из строки
SPACE Возвращает строку с заданным количеством пробелов
STRCMP Проверяет, совпадают ли две строки
SUBSTR Извлекает подстроку из строки (начиная с любой позиции)
SUBSTRING Извлекает подстроку из строки (начиная с любой позиции)
SUBSTRING_INDEX Возвращает подстроку строки перед числом вхождений разделителя
TRIM Удаление начальных и конечных пробелов из строки
UCASE Преобразует строку в верхний регистр
UPPER Преобразует строку в верхний регистр


Цифровые функции MySQL

Функции Описание
ABS Возвращает абсолютное значение числа
ACOS Возвращает дугу косинуса числа
ASIN Возвращает синус дуги числа
ATAN Возвращает тангенс дуги числа или тангенса дуги n и m
ATAN2 Возвращает тангенс дуги n и m
AVG Возвращает среднее значение выражения
CEIL Возвращает наименьшее целое значение, превышающее или равное числу
CEILING Возвращает наименьшее целое значение, превышающее или равное числу
COS Возвращает косинус числа
COT Возвращает котангенс числа
COUNT Возвращает количество записей в запросе SELECT
DEGREES Преобразует значение радиан в градусы
DIV Используется для целочисленного деления
EXP Возвращает значение e, возведенное в силу числа
FLOOR Возвращает наибольшее целочисленное значение, меньшее или равное числу
GREATEST Возвращает наибольшее значение в списке выражений
LEAST Возвращает наименьшее значение в списке выражений
LN Возвращает натуральный логарифм числа
LOG Возвращает натуральный логарифм числа или логарифм числа к указанному базовому
LOG10 Возвращает логарифм Base-10 числа
LOG2 Возвращает логарифм Base-2 числа
MAX Возвращает максимальное значение выражения
MIN Возвращает минимальное значение выражения
MOD Возвращает остаток n, деленный на m
PI Возвращает значение PI, отображаемое с 6 десятичными знаками
POW Возвращает m, возведенное в n-ую мощность
POWER Возвращает m, возведенное в n-ую мощность
RADIANS Преобразует значение в градусах в радианы
RAND Возвращает случайное число или случайное число в пределах диапазона
ROUND Возвращает число, округленное до определенного числа десятичных разрядов
SIGN Возвращает значение, указывающее знак числа
SIN Возвращает синус числа
SQRT Возвращает квадратный корень числа
SUM Возвращает суммированное значение выражения
TAN Возвращает тангенс числа
TRUNCATE Возвращает число, усеченное до определенного числа десятичных разрядов

MySQL Дата функции

Функции Описание
ADDDATE Возвращает дату после добавления определенного интервала времени/даты
ADDTIME Возвращает время/DateTime после добавления определенного временного интервала
CURDATE Возвращает текущую дату
CURRENT_DATE Возвращает текущую дату
CURRENT_TIME Возвращает текущее время
CURRENT_TIMESTAMP Возвращает текущую дату и время
CURTIME Возвращает текущее время
DATE Извлекает значение даты из выражения Date или DateTime
DATEDIFF Возвращает разницу в днях между двумя значениями даты
DATE_ADD Возвращает дату после добавления определенного интервала времени/даты
DATE_FORMAT Форматирует дату, указанную в маске форматирования
DATE_SUB Возвращает дату после вычитания определенного интервала времени/даты
DAY Возвращает часть дня значения даты
DAYNAME Возвращает имя дня недели для даты
DAYOFMONTH Возвращает часть дня значения даты
DAYOFWEEK Возвращает индекс дня недели для значения даты
DAYOFYEAR Возвращает день года для значения даты
EXTRACT Извлечение деталей из даты
FROM_DAYS Возвращает значение даты из числового представления дня
HOUR Возвращает часовую часть значения даты
LAST_DAY Возвращает последний день месяца для заданной даты
LOCALTIME Возвращает текущую дату и время
LOCALTIMESTAMP Возвращает текущую дату и время
MAKEDATE Возвращает дату для определенного года и дня года значение
MAKETIME Возвращает время для определенного часа, минуты, второй комбинации
MICROSECOND Возвращает микросекундную часть значения даты
MINUTE Возвращает минутную часть значения даты
MONTH Returns the month portion of a date value
MONTHNAME Возвращает полное имя месяца для даты
NOW Возвращает текущую дату и время
PERIOD_ADD Занимает период и добавляет указанное количество месяцев к нему
PERIOD_DIFF Возвращает разницу в месяцах между двумя периодами
QUARTER Возвращает четвертую часть значения даты
SECOND Возвращает вторую часть значения даты
SEC_TO_TIME Преобразует числовые секунды в значение времени
STR_TO_DATE Принимает строку и возвращает дату, указанную маской форматирования
SUBDATE Возвращает дату, после которой был вычтен определенный интервал времени/даты
SUBTIME Возвращает значение времени/DateTime после вычитания определенного временного интервала
SYSDATE Возвращает текущую дату и время
TIME Извлекает значение времени из выражения Time/DateTime
TIME_FORMAT Форматирует время, указанное в маске форматирования
TIME_TO_SEC Преобразует значение времени в числовые секунды
TIMEDIFF Возвращает разницу между двумя значениями времени/DateTime
TIMESTAMP Преобразует выражение в значение DateTime и при указании добавляет дополнительный временной интервал к значению
TO_DAYS Преобразует дату в числовые дни
WEEK Возвращает часть недели значения даты
WEEKDAY Возвращает индекс дня недели для значения даты
WEEKOFYEAR Возвращает неделю года для значения даты
YEAR Возвращает часть года значения даты
YEARWEEK Возвращает год и неделю для значения даты

Что такое 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).

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

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

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

Примечание

Приложение на РНР, которое использует базу данных для надежного хранения информации, в любом случае функционирует более оперативно приложения, которое построено на файлах. Это легко объясняется тем, что для написания баз данных используется язык С++, а создать на РНР программу, которая бы работала с жестким диском качественнее базы данных – невозможно, так как программы на РНР априори работают медленнее, чем программы, написанные на С++. РНР является интерпретатором, а С++ компилятором.

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

Что быстрее utf8_general_ci или utf8_unicode_ci ?

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