
20.12.2007, 01:08
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Сообщение от Helios
Ну мы немного не о том говорили.
В чем разница между статическими типами и динамическими и откуда тормоза?
При построении таблицы выборки MySQL должен узнать размеры памяти, которую необходимо выделить под определенный столбец.
При использовании статических типов эта величина заранее известна из описания структуры и каждый раз не перепроверяется.
При мспользовании динамических полей заранее неизвестна длина самого большого поля в строке, поэтому мусткулу приходится "пробежаться" по всем значениям, дабы узнать максимальную длину и выделить соответсятвующий объем памяти для каждой ячейки в столбце.
Вот это время и есть критично.
Разница между char и varchar:
При построении таблицы выборки для char(N) и для varchar(N) выделяется равный размер памяти, который берется из описания структуры таблицы.
Разница этих типов в представлении данных таблицы на диске: varchar займет меньше места на диске, т.к.
Но если у тебя в базе длины всех значений в столбце одинаковы, то разницы между char и varchar ты никакой не увидишь.
Всё, разобрался! поставил тип varbinary(32) на поле пароль (так phpMyadmin отображает). Тормозов быть не должно...
|
|
|