Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   lamers (https://forum.antichat.xyz/showthread.php?t=25944)

Zadoxlik 25.10.2006 22:58

lamers
 
Здравствуйте, Хакеры! Подскажите пожалуйста ламеру!

Что означает в 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

Цитата:

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

Т.е. это имеет смысл только при разрядности числа в 10ой системе счисления, меньшей чем та, что указана в скобках с пометкой ZEROFILL на поле? =()


Время: 00:50