Независимо от того, есть ли у вас небольшое свободное пространство базы данных или большой веб-сайт электронной коммерции, очень важно, чтобы база данных разумно спроектировала структуру таблиц и полностью использовала пространство. Это требует от нас полного понимания и разумного применения общих типов данных в системах баз данных. Ниже мы познакомим вас с некоторым опытом и опытом, надеясь помочь вам мыслить более рационально при построении базы данных.
1. Тип номера
Числовые типы делятся на три категории в соответствии с моим методом классификации: целочисленные типы, десятичные типы и числовые типы.
То, что я называю «числовыми классами», относится к DECIMAL и NUMERIC, которые относятся к одному и тому же типу. Это не строго числовой тип, поскольку на самом деле они хранят числа в виде строк; каждая цифра его значения (включая десятичную точку) занимает один байт памяти, поэтому этот тип занимает много места для сравнения. Однако одним из его выдающихся преимуществ является то, что десятичные цифры фиксированы и не будут «искажаться» во время операций, поэтому он больше подходит для таких полей, как «цена» и «сумма», которые не требуют высокой точности, но требуют очень высокой точности. точность.
Десятичный тип, то есть тип числа с плавающей запятой, имеет два типа: FLOAT и DOUBLE, в зависимости от точности. Их преимуществом является точность. FLOAT может представлять десятичные дроби с очень маленькими абсолютными значениями, примерно 1,17E-38 (0,000...0117, после запятой 37 нулей), тогда как DOUBLE может представлять абсолютные значения как маленькие. примерно как 2,22E-308 (0,000...0222, 307 нулей после запятой) в десятичном формате. Объем памяти, занимаемый типами FLOAT и DOUBLE, составляет 4 байта и 8 байтов соответственно. Если вам нужно использовать десятичные поля и точность невысокая, конечно используйте FLOAT. Но если честно, как наши "гражданские" данные могут требовать такой высокой точности? Я эти два типа пока не использовал - случаев, подходящих для их использования, не встречал.
Наиболее часто используемый тип и наиболее заслуживающий тщательного расчета — это целочисленный тип. От TINYINT, который занимает всего один байт места для хранения, до BIGINT, который занимает 8 байт, при проектировании базы данных следует учитывать выбор типа, который является «достаточным» и занимает наименьшее пространство для хранения. TINYINT, SMALLINT, MEDIUMINT, INT и BIGINT занимают пространство памяти размером 1 байт, 2 байта, 3 байта, 4 байта и 8 байтов соответственно. Что касается целых чисел без знака, максимальные целые числа, которые могут представлять эти типы, составляют соответственно 255, 65535, 16777215. , 4294967295 и 18446744073709551615. Если он используется для сохранения возраста пользователя (например, не рекомендуется сохранять возраст в базе данных), достаточно TINYINT в «Zongheng» Цзюченга, SMALLINT достаточно для каждого значения навыка, если вы хотите использовать Make; поле IDENTIFY для AUTO_INCREMENT в таблице, которая определенно не будет превышать 16 000 000 строк. Конечно, используйте MEDIUMINT вместо INT. Представьте себе, что каждая строка сохраняет один байт, что позволяет сэкономить более 10 мегабайт.