PDA

Просмотр полной версии : lamers


Zadoxlik
25.10.2006, 22:58
Здравствуйте, Хакеры! Подскажите пожалуйста ламеру!

Что означает в MySQL запись характеристики поля ввиде
int(chislo) ?

А конкретно интересует то, что помещается в скобках! Спасибо!

ZaCo
25.10.2006, 23:01
ТИП(chislo) непременимо для типа int (то есть безполезно). на int выделяется всегда одно постоянное кол-во байт - 4. и изменение chislo ни на что не повлияет. другое дело varchar etc

Zadoxlik
25.10.2006, 23:01
Методом логического анализа мы с господином, коего называть не буду, пришли к выводу что запись не имеет смысла, т.к. память выделяется под поле одна и та же. Однако количественного анализа не проводилось, т.к. я ухожу спать. Завтра почитаю компетентнейшие овтеты, особливо будем ждать Егора и Тринукса.
Спкойной всем ночи

ZaCo
25.10.2006, 23:08
кто же это???
вот http://www.mysql.ru/docs/man/Storage_requirements.html int(число) вообще не определено. хотя бы потому что такие числа в формате "числа" хранить просто невозможно. другое дело что мускуль для арифметических операций использует длинную арифметику ;)

PSalm69
25.10.2006, 23:51
CREATE TABLE shop (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
dealer CHAR(20) DEFAULT '' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
PRIMARY KEY(article, dealer));

данные для примера будут такими:

mysql> SELECT * FROM shop;

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | A | 3.45 |
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | B | 1.45 |
| 0003 | C | 1.69 |
| 0003 | D | 1.25 |
| 0004 | D | 19.95 |
+---------+--------+-------+

максимальное значание равно 4 а минимальное кажись 2
int(chislo) - это определить значение в столбце
кажись так... если что не так будет самому интересно узнать правильный ответ =)

ZaCo
25.10.2006, 23:54
2PSalm69 нет, это не так :)

Trinux
26.10.2006, 06:20
=)))) ну даете =))) может памяти и выделяется одинаковое количество, но вот индекс по полю строится совсем по другому принципу. Если поле индексируется (любым индексом), то намного оптимальнее использовать точное количество нулей. Чем меньше индекс, тем быстрее поиск по нему, это очевидно )

Zadoxlik
26.10.2006, 07:58
Пордон, а что значит одинаковое количество нулей? У меня в независимости от значния chisl'а в ячейку таблицы можно разместить число из одного и тогоже диапазона

Если учитывать знаковый бит, то этот диапазон соствляет [-0x7FFFFFFF; 0x7FFFFFFF] =D

hidden
26.10.2006, 08:16
http://www.sql.ru/docs/mysql/rus%5Fref/sql.shtml#Create
Это как оно должно будет выглядеть, при выводе результатов запроса.

Zadoxlik
26.10.2006, 17:37
http://www.sql.ru/docs/mysql/rus%5Fref/sql.shtml#Create
Это как оно должно будет выглядеть, при выводе результатов запроса.
Т.е. это имеет смысл только при разрядности числа в 10ой системе счисления, меньшей чем та, что указана в скобках с пометкой ZEROFILL на поле? =()