суббота, 18 ноября 2017 г.

MySQL. Урок 15. Загрузка данных на сервер. Способ загрузки с отключенными индексами. Операторы DISABLE KEYS, ENABLE KEYS. Способ загрузки из файла. Оператор LOAD DATA INFILE. Операторы приоритета при загрузке LOW_PRIORITY, HIGH_PRIORITY, DELAYED.

-- Удаляем таблицу.
DROP TABLE IF EXISTS table3;


-- Индекс можно создать в самой таблице.
CREATE TABLE IF NOT EXISTS table3
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price FLOAT NOT NULL DEFAULT 0 COMMENT 'Цена товара',
PRIMARY KEY(id)
) COMMENT 'Таблица товаров';

-- Для вставки в БД больших объемов информации можно временно отключать индексы. После загрузки индексы включаются.

-- Отключение индексов при загрузке.
ALTER TABLE table3 DISABLE KEYS;

-- Вставим данные.
INSERT IGNORE INTO table3
VALUES
(NULL, 'Товар 1', 12.10),
(NULL, 'Товар 2', 13.10),
(NULL, 'Товар 3', 14.10),
(NULL, 'Товар 4', 15.10),
(NULL, 'Товар 5', 16.10),
(NULL, 'Товар 6', 17.10);

-- Включение индексов после загрузки.
ALTER TABLE table3 ENABLE KEYS;

-- Посмотрим, что в таблице.
SELECT * FROM table3;

-- Загрузка из файла.
-- Например у нас есть файл data.txt с информаций, которую мы хотим загрузить.
/*
NULL Товар 1 12.10
NULL Товар 2 12.10
NULL Товар 3 12.10
NULL Товар 4 12.10

*/
-- Файл должен быть отформатированным, как правило, знаками табуляции.
LOAD DATA
INFILE 'data.txt'
INTO TABLE table3
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n';
-- Меняем кодировку.
SET NAMES 'cp866';
-- Посмотрим, что в таблице.
SELECT * FROM table3;

-- Конкуретные запросы: HIGH_PRIORITY ИЛИ LOW_PRIORITY
INSERT HIGH_PRIORITY INTO table3
VALUES
(NULL, 'Товар 10', 12.10),
(NULL, 'Товар 20', 13.10),
(NULL, 'Товар 30', 14.10),
(NULL, 'Товар 40', 15.10),
(NULL, 'Товар 50', 16.10),
(NULL, 'Товар 60', 17.10);
-- Посмотрим, что в таблице.
SELECT * FROM table3;

-- Создадим таблицу на движке MYISAM.
CREATE TABLE IF NOT EXISTS table7
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Код товара',
name VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'Название товара',
price FLOAT NOT NULL DEFAULT 0 COMMENT 'Цена товара',
PRIMARY KEY(id)
) ENGINE MYISAM COMMENT 'Таблица товаров';

-- Загрузка с отложенным запросом. Сервер загрузит данные, когда сможет. Работает только на движке MYISAM.
INSERT DELAYED INTO table7
VALUES
(NULL, 'Товар 10', 12.10),
(NULL, 'Товар 20', 13.10),
(NULL, 'Товар 30', 14.10),
(NULL, 'Товар 40', 15.10),
(NULL, 'Товар 50', 16.10),
(NULL, 'Товар 60', 17.10);
-- Посмотрим, что в таблице.

SELECT * FROM table7; 

Комментариев нет:

Отправить комментарий

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html