Содержание
- 1 Типы данных MySQL
- 2 Числовые типы данных
- 3 ПримерыExamples
- 4 Тип SIMPLE_INTEGER
- 5 Создание таблицыCreate a Table
- 6 DDL – Data Definition Language (язык описания данных)
- 7 Двоичные данные
- 8 Символьные типы данных
- 9 Parameters
- 10 Числовые типы данных
- 11 Тип данных REF CURSOR
- 12 TL;DR версия
- 13 Numeric Versus Integer and Floating Data Types
Типы данных 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 значений. Если вставленное значение отсутствует в списке, будет вставлено пустое значение. Примечание: Значения сортируются в порядке их ввода. Вы вводите возможные значения в этом формате: Enum (‘ X ‘, ‘ Y ‘, ‘ Z ‘) |
SET | Аналогично Enum, за исключением того, что набор может содержать до 64 элементов списка и может хранить более одного выбора |
Типы данных чисел:
Тип данных | Описание |
---|---|
TINYINT(size) | -128 до 127 нормальный. 0 до 255 неподписанный *. Максимальное количество цифр может быть указано в скобках |
SMALLINT(size) | -32768 до 32767 нормальный. 0 до 65535 неподписанный *. Максимальное количество цифр может быть указано в скобках |
MEDIUMINT(size) | -8388608 до 8388607 нормальный. 0 до 16777215 неподписанный *. Максимальное количество цифр может быть указано в скобках |
INT(size) | -2147483648 до 2147483647 нормальный. 0 до 4294967295 неподписанный *. Максимальное количество цифр может быть указано в скобках |
BIGINT(size) | -9223372036854775808 до 9223372036854775807 в норме. 0 для 18446744073709551615 неподписанных *. Максимальное количество цифр может быть указано в скобках |
FLOAT(size,d) | Небольшое число с плавающей запятой. Максимальное количество цифр может быть указано в параметре size. Максимальное число цифр справа от десятичной запятой указано в параметре d |
DOUBLE(size,d) | Большое число с плавающей запятой. Максимальное количество цифр может быть указано в параметре size. Максимальное число цифр справа от десятичной запятой указано в параметре d |
DECIMAL(size,d) | Значение типа Double, хранящееся в виде строки и допускающее фиксированную десятичную точку. Максимальное количество цифр может быть указано в параметре size. Максимальное число цифр справа от десятичной запятой указано в параметре d |
* целочисленные типы имеют дополнительный параметр, называемый неподписанным. Как правило, целое число переходит от отрицательного к положительному значению. Добавление неподписанного атрибута будет перемещаться, что диапазон вверх, поэтому он начинается с нуля, а не отрицательное число.
Типы данных дат:
Тип данных | Описание |
---|---|
DATE() | Свидание. Формат: гггг-мм-DD Примечание: Поддерживаемый диапазон от ‘ 1000-01-01 ‘ до ‘ 9999-12-31 ‘ |
DATETIME() | * комбинация даты и времени. Формат: гггг-мм-DD HH: MI: SS Примечание: Поддерживаемый диапазон от ‘ 1000-01-01 00:00:00 ‘ до ‘ 9999-12-31 23:59:59 ‘ |
TIMESTAMP() | * Временная метка. Значения timestamp хранятся в виде количества секунд со времени Unix (‘ 1970-01-01 00:00:00 ‘ UTC). Формат: гггг-мм-DD HH: MI: SS Примечание: Поддерживаемый диапазон от ‘ 1970-01-01 00:00:01 ‘ UTC до ‘ 2038-01-09 03:14:07 ‘ UTC |
TIME() | Время. Формат: HH: MI: SS Примечание: Поддерживаемый диапазон от ‘-838:59:59 ‘ до ‘ 838:59:59 ‘ |
YEAR() | Год в формате с двумя или четырьмя цифрами. Примечание: Допустимые значения в формате четырех цифр: 1901 до 2155. Допустимые значения в формате с двумя цифрами: 70 до 69, представляющие годы с 1970 по 2069 |
* даже если DateTime и timestamp возвращаются в том же формате, они работают очень по-разному. В запросе INSERT или Update временная метка автоматически устанавливает текущую дату и время. TIMESTAMP также принимает различные форматы, такие как ииииммддххмисс, ииммддххмисс, ГГГГММДД или YYMMDD.
Числовые типы данных
Как и следовало ожидать по их названию, числовые типы данных применяются для представления чисел. Эти типы и их краткое описание приводятся в таблице ниже:
Тип данных | Описание |
---|---|
INTEGER | Представляет целочисленные значения длиной в 4 байта в диапазоне от -232 до 232 — 1. INT — сокращенная форма от INTEGER. |
SMALLINT | Представляет целочисленные значения длиной в 2 байта в диапазоне от -32 768 до 32 767 |
TINYINT | Представляет целочисленные значения длиной в 1 байт в диапазоне от 0 до 255 |
BIGINT | Представляет целочисленные значения длиной в 8 байт в диапазоне от -263 до 263 — 1 |
DECIMAL(p,) | Представляет значения с фиксированной точкой. Аргумент p (precision — точность) указывает общее количество разрядов, а аргумент s (scale — степень) — количество разрядов справа от полагаемой десятичной точки. В зависимости от значения аргумента p, значения decimal сохраняются в 5 до 17 байтах. DEC — сокращенная форма от DECIMAL. |
NUMERIC(p,) | Синоним DECIMAL. |
REAL | Применяется для представления значений с плавающей точкой. Диапазон положительных значений простирается приблизительно от 2,23E -308 до -1,18E -38. Также может быть представлено и нулевое значение. |
FLOAT | Подобно типу REAL, представляет значения с плавающей точкой . Аргумент p определяет точность. При значении p < 25 представляемые значения имеют одинарную точность (требуют 4 байта для хранения), а при значении p >= 25 — двойную точность (требуют 8 байтов для хранения). |
MONEY | Используется для представления денежных значений. Значения типа MONEY соответствуют 8-байтовым значениям типа DECIMAL, округленным до четырех разрядов после десятичной точки |
SMALLMONEY | Представляет такие же значения, что и тип MONEY, но длиной в 4 байта |
ПримерыExamples
A.A. Сравнение OR и INComparing OR and IN
В следующем примере осуществляется выборка списка имен сотрудников на должностях инженеров-разработчиков, разработчиков средств и сотрудников отдела сбыта.The following example selects a list of the names of employees who are design engineers, tool designers, or marketing assistants.
Этот же результат можно получить при помощи оператора IN.However, you retrieve the same results by using IN.
Ниже представлен результирующий набор, возвращаемый каждым из запросов.Here is the result set from either query.
Б.B. Применение IN с вложенным запросомUsing IN with a subquery
В следующем примере осуществляется поиск идентификаторов менеджеров по продажам в таблице , имеющих объем продаж более 250 000 долларов в год, а затем выборка из таблицы имен и фамилий всех сотрудников, идентификаторы которых совпадают с результатами вложенного запроса .The following example finds all IDs for the salespeople in the table for employees who have a sales quota greater than $250,000 for the year, and then selects from the table the names of all employees where that match the results from the subquery.
Результирующий набор:Here is the result set.
В.C. Применение NOT IN с вложенным запросомUsing NOT IN with a subquery
В следующем примере производится поиск торговцев, квота которых не выше 250 000 долларов США.The following example finds the salespersons who do not have a quota greater than $250,000. С помощью можно найти торговцев, которые не соответствуют списку значений. finds the salespersons who do not match the items in the values list.
Тип SIMPLE_INTEGER
Тип появился в Oracle11g. Он представляет собой оптимизированную по быстродействию версию с некоторыми ограничениями. Тип имеет такой же диапазон значений, как (от −2 147 483 648 до 2 147 483 647), но не поддерживает и не проверяет условия переполнения. Казалось бы, зачем использовать этот неполноценный дубликат ? Если ваша программа компилируется в машинный код, а ситуация такова, что и переполнение исключены, тип обеспечит значительно лучшее быстродействие. Рассмотрим следующий пример:
/* Файл в Сети: simple_integer_demo.sql */ -- Начнем с создания процедуры, требующей большого объема -- вычислений, с использованием PLS_INTEGER CREATE OR REPLACE PROCEDURE pls_test (iterations IN PLS_INTEGER) AS int1 PLS_INTEGER := 1; int2 PLS_INTEGER := 2; begints timestamp; endts timestamp; BEGIN begints := SYSTIMESTAMP; FOR cnt IN 1 .. iterations LOOP int1 := int1 + int2 * cnt; END LOOP; endts := SYSTIMESTAMP; DBMS_OUTPUT.put_line( iterations || ' итераций за время:' || TO_CHAR (endts - begints)); END; / -- Затем та же процедура создается с использованием SIMPLE_INTEGER CREATE OR REPLACE PROCEDURE simple_test (iterations IN SIMPLE_INTEGER) AS int1 SIMPLE_INTEGER := 1; int2 SIMPLE_INTEGER := 2; begints timestamp; endts timestamp; BEGIN begints := SYSTIMESTAMP; FOR cnt IN 1 .. iterations LOOP int1 := int1 + int2 * cnt; END LOOP; endts := SYSTIMESTAMP; DBMS_OUTPUT.put_line( iterations || ' итераций за время:' || TO_CHAR (endts - begints)); END; / -- Сначала процедуры перекомпилируются в режиме интерпретации ALTER PROCEDURE pls_test COMPILE PLSQL_CODE_TYPE=INTERPRETED; / ALTER PROCEDURE simple_test COMPILE PLSQL_CODE_TYPE=INTERPRETED / -- Сравнить время выполнения BEGIN pls_test(123456789); END; / 123456789 итераций за время:+000000000 00:00:06.375000000 BEGIN simple_test(123456789); END; / 123456789 итераций за время:+000000000 00:00:06.000000000 -- Перекомпиляция в машинный код ALTER PROCEDURE pls_test COMPILE PLSQL_CODE_TYPE=NATIVE / ALTER PROCEDURE simple_test COMPILE PLSQL_CODE_TYPE= NATIVE / -- Сравнение времени выполнения BEGIN pls_test(123456789); END; / 123456789 итераций за время:+000000000 00:00:03.703000000 BEGIN simple_test(123456789); END; / 123456789 итераций за время:+000000000 00:00:01.203000000
Из этого примера видно, что тип обеспечивает небольшое преимущество по быстродействию интерпретируемого кода (6% в тесте на сервере Microsoft Windows). Оба типа, и быстрее работают при компиляции в машинный код, но в «машинном» варианте , работает на 300% быстрее, чем ! В качестве упражнения проведите этот тест с типом — я обнаружил, что превосходит по производительности на 1000%. На сервере Linux с Oracle Database 11g Release 2 аналогичные различия в производительности наблюдались при использовании (часто на несколько сотен процентов быстрее, чем с альтернативными числовыми типами).
Создание таблицыCreate a Table
Область применения: SQL Server База данных SQL Azure Azure Synapse Analytics (Хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse
Чтобы создать таблицу, нужно указать имя таблицы, имена и типы данных для каждого столбца таблицы.To create a table, you must provide a name for the table, and the names and data types of each column in the table. Также рекомендуется указывать, допускаются ли значения NULL для каждого из столбцов.It is also a good practice to indicate whether null values are allowed in each column. Для создания таблицы необходимо иметь разрешение и разрешение для схемы, которая будет содержать таблицу.To create a table, you must have the permission, and the permission on the schema that will contain the table. Предопределенная роль базы данных имеет эти разрешения.The fixed database role has these permissions.
Большинство таблиц имеют первичный ключ, состоящий из одной или нескольких столбцов таблицы.Most tables have a primary key, made up of one or more columns of the table. Первичный ключ всегда уникален.A primary key is always unique. Компонент Компонент Database EngineDatabase Engine потребует выполнения условия неповторения значения первичного ключа в таблице.The Компонент Database EngineDatabase Engine will enforce the restriction that any primary key value cannot be repeated in the table.
Список типов данных и ссылки на их описание см. в разделе Типы данных (Transact-SQL).For a list of data types and links for a description of each, see Data Types (Transact-SQL).
Примечание
Компонент Компонент Database EngineDatabase Engine может быть установлен с учетом регистра и без учета регистра.The Компонент Database EngineDatabase Engine can be installed as case sensitive or non-case sensitive. Если компонент Компонент Database EngineDatabase Engine установлен с учетом регистра, имена объектов должны иметь одно и тоже имя.If the Компонент Database EngineDatabase Engine is installed as case sensitive, object names must always have the same case. Например, таблица с именем OrderData будет отличаться от таблицы ORDERDATA.For example, a table named OrderData is a different table from a table named ORDERDATA. Если компонент Компонент Database EngineDatabase Engine установлен без учета регистра, эти два имени таблицы будут рассматриваться как одна таблица, то есть имя может быть использовано только один раз.If the Компонент Database EngineDatabase Engine is installed as non-case sensitive, those two table names are considered to be the same table, and that name can only be used one time.
Создание таблицыCreate the table
В окне редактора запросов введите и выполните следующий код, чтобы создать таблицу .In a Query Editor window, type and execute the following code to create a table named . Столбцы таблицы имеют имена , , и .The columns in the table are named , , , and . Столбец является первичным ключом таблицы.The column is the primary key of the table. , , и ., , , and are all data types. Только столбцы и могут быть пустыми при вставке или изменении строки.Only the and columns can have no data when a row is inserted or changed. Данная инструкция содержит необязательный элемент (), называемый схемой.This statement contains an optional element () called a schema. Схема — это объект базы данных, к которому принадлежит таблица.The schema is the database object that owns the table. Если вы являетесь администратором, схемой по умолчанию будет схема .If you are an administrator, is the default schema. означает владельца базы данных. stands for database owner.
DDL – Data Definition Language (язык описания данных)
Табельный номер | ФИО | Дата рождения | Должность | Отдел | |
---|---|---|---|---|---|
1000 | Иванов И.И. | 19.02.1955 | i.ivanov@test.tt | Директор | Администрация |
1001 | Петров П.П. | 03.12.1983 | p.petrov@test.tt | Программист | ИТ |
1002 | Сидоров С.С. | 07.06.1976 | s.sidorov@test.tt | Бухгалтер | Бухгалтерия |
1003 | Андреев А.А. | 17.04.1982 | a.andreev@test.tt | Старший программист | ИТ |
- Табельный номер – целое число
- ФИО – строка
- Дата рождения – дата
- E-mail – строка
- Должность – строка
- Отдел – строка
Значение Обозначение в MS SQL Описание Строка переменной длины varchar(N) и nvarchar(N) При помощи числа N, мы можем указать максимально возможную длину строки для соответствующего столбца. Например, если мы хотим сказать, что значение столбца «ФИО» может содержать максимум 30 символов, то необходимо задать ей тип nvarchar(30). Отличие varchar от nvarchar заключается в том, что varchar позволяет хранить строки в формате ASCII, где один символ занимает 1 байт, а nvarchar хранит строки в формате Unicode, где каждый символ занимает 2 байта. Тип varchar стоит использовать только в том случае, если вы на 100% уверены, что в данном поле не потребуется хранить Unicode символы. Например, varchar можно использовать для хранения адресов электронной почты, т.к. они обычно содержат только ASCII символы. Строка фиксированной длины char(N) и nchar(N) От строки переменной длины данный тип отличается тем, что если длина строка меньше N символов, то она всегда дополняется справа до длины N пробелами и сохраняется в БД в таком виде, т.е. в базе данных она занимает ровно N символов (где один символ занимает 1 байт для char и 2 байта для типа nchar). На моей практике данный тип очень редко находит применение, а если и используется, то он используется в основном в формате char(1), т.е. когда поле определяется одним символом. Целое число int Данный тип позволяет нам использовать в столбце только целые числа, как положительные, так и отрицательные. Для справки (сейчас это не так актуально для нас) – диапазон чисел который позволяет тип int от -2 147 483 648 до 2 147 483 647. Обычно это основной тип, который используется для задания идентификаторов. Вещественное или действительное число float Если говорить простым языком, то это числа, в которых может присутствовать десятичная точка (запятая). Дата date Если в столбце необходимо хранить только Дату, которая состоит из трех составляющих: Числа, Месяца и Года. Например, 15.02.2014 (15 февраля 2014 года). Данный тип можно использовать для столбца «Дата приема», «Дата рождения» и т.п., т.е
в тех случаях, когда нам важно зафиксировать только дату, или, когда составляющая времени нам не важна и ее можно отбросить или если она не известна. Время time Данный тип можно использовать, если в столбце необходимо хранить только данные о времени, т.е. Часы, Минуты, Секунды и Миллисекунды
Например, 17:38:31.3231603 Например, ежедневное «Время отправления рейса». Дата и время datetime Данный тип позволяет одновременно сохранить и Дату, и Время. Например, 15.02.2014 17:38:31.323 Для примера это может быть дата и время какого-нибудь события. Флаг bit Данный тип удобно применять для хранения значений вида «Да»/«Нет», где «Да» будет сохраняться как 1, а «Нет» будет сохраняться как 0.
- ID – Табельный номер (Идентификатор сотрудника)
- Name – ФИО
- Birthday – Дата рождения
- Email – E-mail
- Position – Должность
- Department – Отдел
Двоичные данные
Oracle поддерживает несколько разновидностей двоичных данных — неструктурированных данных, не интерпретируемых и не обрабатываемых Oracle. К их числу относятся типы , и . Тип используется для хранения неструктурированных двоичных данных в файлах операционной системы вне базы данных. Тип имеет переменную длину, а при операциях с ним Oracle не выполняет преобразование символов при передаче данных. В остальном он аналогичен символьному типу .
Тип данных поддерживается для обеспечения обратной совместимости, но в PL/SQL поддержка данных ограничена. В базе данных Oracle столбецзанимает до 2 Гбайт, но PL/SQL позволяет работать только с первыми 32 760 байтами . Если, например, вы попытаетесь выполнить выборку в переменную PL/SQL из столбца , превышающего лимит в 32 760 байт, произойдет ошибка:
ORA-06502: PL/SQL: numeric or value error exception.
Для работы с данными, превышающими лимит PL/SQL, потребуется программа OCI; кстати, это веская причина для перевода старого кода с на данные , не имеющие такого ограничения.
Символьные типы данных
Существует два общих вида символьных типов данных. Строки могут представляться однобайтовыми символами или же символами в кодировке Unicode. (В кодировке Unicode для представления одного символа применяется несколько байтов.) Кроме этого, строки могут быть разной длины. В таблице ниже перечислены категории символьных типов данных с их кратким описанием.
Тип данных | Описание |
---|---|
CHAR | Применяется для представления строк фиксированной длины, состоящих из n однобайтовых символов. Максимальное значение n равно 8000. CHARACTER(n) — альтернативная эквивалентная форма CHAR(n). Если n явно не указано, то его значение полагается равным 1. |
VARCHAR | Используется для представления строки однобайтовых символов переменной длины (0 < n < 8 000). В отличие от типа данных CHAR, количество байтов для хранения значений типа данных VARCHAR равно их действительной длине. Этот тип данных имеет два синонима: CHAR VARYING и CHARACTER VARYING. |
NCHAR | Используется для хранения строк фиксированной длины, состоящих из символов в кодировке Unicode. Основная разница между типами данных CHAR и NCHAR состоит в том, что для хранения каждого символа строки типа NCHAR требуется 2 байта, а строки типа CHAR — 1 байт. Поэтому строка типа данных NCHAR может содержать самое большее 4000 символов. Тип NCHAR можно использовать для хранения, например, символов русского алфавита, т.к. однобайтовые кодировки не позволяют делать этого. |
NVARCHAR | Используется для хранения строк переменной длины, состоящих из символов в кодировке Unicode. Для хранения каждого символа строки типа NVARCHAR требуется 2 байта, поэтому строка типа данных NVARCHAR может содержать самое большее 4000 символов. |
Тип данных VARCHAR идентичен типу данных CHAR, за исключением одного различия: если содержимое строки CHAR(n) короче, чем n символов, остаток строки заполняется пробелами. А количество байтов, занимаемых строкой типа VARCHAR, всегда равно количеству символов в ней.
Parameters
numeric‑type |
One of the following: |
precision |
An unsigned integer that specifies the total number of significant digits that the data type stores, where precision is ≤ 1024. If omitted, the depends on numeric type that you specify. If you assign a value that exceeds precision, Vertica returns an error. If a data type’s precision is ≤ 18, performance is equivalent to an INTEGER data type, regardless of scale. When possible, Vertica recommends using a precision ≤ 18. |
scale |
An unsigned integer that specifies the maximum number of digits to the right of the decimal point to store. scale must be ≤ precision. If omitted, the depends on numeric type that you specify. If you assign a value with more decimal digits than scale, the scale is rounded to scale digits. |
Числовые типы данных
Ниже приведены числовые типы данных в SQL Server (Transact-SQL):
Синтаксис типа данных | Максимальный размер | Пояснение |
---|---|---|
BIT | Целое число, которое может быть 0, 1 или NULL. | |
TINYINT | От 0 до 255 | |
SMALLINT | -32768 до 32767 | |
INT | -2,147,483,648 до 2,147,483,647 | |
BIGINT | -9,223,372,036,854,775,808 — 9,223,372,036,854,775,807 | |
DECIMAL(m,d) | m по умолчанию — 18, если не указано. d по умолчанию равно 0, если не указано. | Где m — это суммарное количество цифр, а d — количество цифр после десятичного знака. |
DEC(m,d) | m по умолчанию — 18, если не указано. d по умолчанию равно 0, если не указано. | Где m — это суммарное количество цифр, а d — количество цифр после десятичного знака. Это синоним типа DECIMAL. |
NUMERIC(m,d) | m по умолчанию — 18, если не указано. d по умолчанию равно 0, если не указано. | Где m — это суммарные цифры, а d — количество цифр после десятичного знака. Это синоним типа DECIMAL. |
FLOAT(n) | Число с плавающей точкой. n по умолчанию — 53, если не указано. | Где n — количество бит, которое должно храниться в научной нотации. |
REAL | Эквивалент FLOAT (24) | |
SMALLMONEY | — 214,748.3648 до 214,748.3647 | |
MONEY | -922,337,203,685,477,5808 до 922,337,203,685,477.5807 |
Тип данных REF CURSOR
Тип данных позволяет объявлять курсорные переменные, которые могут использоваться со статическими и динамическими SQL-командами для улучшения гибкости программного кода. Тип существует в двух формах: сильной и слабой. PL/SQL относится к категории языков со статической типизацией, а слабый тип является одной из немногочисленных конструкций с динамической типизацией.
В следующем примере объявления сильной формы курсорная переменная связывается с конкретной структурой записи с помощью атрибута :
DECLARE TYPE book_data_t IS REF CURSOR RETURN book%ROWTYPE; book_curs_var book_data_t;
Далее следуют два слабых объявления , в которых переменная не связывается ни с какой конкретной структурой. Во втором объявлении (строка 4) представлен тип — заранее определенный слабый тип .
DECLARE TYPE book_data_t IS REF CURSOR; book_curs_var book_data_t; book_curs_var_b SYS_REFCURSOR;
TL;DR версия
- Удалите ненужные колонки из схемы.
- Сократите длину колонок до минимума.
- Избегайте использования NULL значений.
- Выберите минимально необходимые числовые типы (TINYINT / SMALLINT вместо INT).
- Используйте FLOAT / DOUBLE вместо DECIMAL для приблизительных чисел.
- Выберите CHAR для строк приблизительно одинаковой длины.
- Для остальных строк — выберите VARCHAR.
- Не используйте TEXT / BLOB для сортировки и индексирования.
- Используйте ENUM вместо строк из фиксированного набора (например, списка стран).
- Используйте TIMESTAMP для простановки времени событий (регистрация, отправка сообщения и т.п.).
- Для остальных дат используйте DATETIME.
- Прочитайте об устройстве индексов и тюнинге настроек в Mysql.
Numeric Versus Integer and Floating Data Types
Numeric data types are exact data types that store values of a specified precision and scale, expressed with a number of digits before and after a decimal point. This contrasts with the Vertica integer and floating data types:
- supports ~15 digits, variable exponent, and represents numeric values approximately. It can be less precise than data types.
- supports ~18 digits, whole numbers only.
The data type is preferred for non-integer constants, because it is always exact. For example:
=> SELECT 1.1 + 2.2 = 3.3; ?column? ---------- t (1 row) => SELECT 1.1::float + 2.2::float = 3.3::float; ?column? ---------- f (1 row)
С этим читают
- Что такое субд
- Sql server express localdb
- Смайлики из символов
- Таблицы oracle
- Установка служб integration services (ssis)install integration services (ssis)
- Download sql server management studio (ssms)
- Создание таблиц базы данных
- Служба «sql server, браузер»sql server browser service
- Обновление sql server с помощью мастера установки (программа установки)upgrade sql server using the installation wizard (setup)
- Простые sql запросы — короткая справка и примеры