묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
제로보드 스키마에 대한 질문입니다. 에휴,,,
2003.10.04 18:54
$member_table_schema ="
create table $member_table (
no int(20) not null auto_increment primary key ,
group_no int(20) not null,
user_id char(20) not null ,
password char(20) not null,
board_name char(255) null default '',
name char(20) not null,
level int(2) not null default '10',
email char(255),
homepage char(255),
icq char(20),
aol char(20),
msn char(20),
jumin char(18),
comment text,
point1 int(20) default '0',
point2 int(20) default '0',
job char(50),
hobby char(50),
home_address char(255),
home_tel char(20),
office_address char(255),
office_tel char(20),
handphone char(20),
mailing char(1) default '0',
birth int(13),
picture char(255),
reg_date int(13),
openinfo char(1) default '+ '+ '1',
is_admin char(1) default '3',
new_memo char(1) default '0',
open_email char(1) default '1',
open_homepage char(1) default '1',
open_icq char(1) default '1',
open_aol char(1) default '1',
open_msn char(1) default '1',
open_comment char(1) default '1',
open_job char(1) default '1',
open_hobby char(1) default '1',
open_home_address char(1) default '1',
open_home_tel char(1) default '+ '1',
open_office_address char(1) default '1'+ ',
open_office_tel char(1) default '1',
open_handphone char(1) default '1',
open_birth char(1) default '1',
open_picture char(1) default '1',
KEY group_no (group_no),
KEY user_id (user_id),
KEY password (password),
KEY name (name)
)
";
저기 밑에 KEY가 하는 역할이 인덱스 인가요?
인덱스라면 활용도가 어떻게 되나요,
그리고 컬럼중에 board_name의 역할도...부탁드립니다.
또,; 왜 제로보드에서는 varchar보다 char로 다 되있나요? 어떤점에서?
create table $member_table (
no int(20) not null auto_increment primary key ,
group_no int(20) not null,
user_id char(20) not null ,
password char(20) not null,
board_name char(255) null default '',
name char(20) not null,
level int(2) not null default '10',
email char(255),
homepage char(255),
icq char(20),
aol char(20),
msn char(20),
jumin char(18),
comment text,
point1 int(20) default '0',
point2 int(20) default '0',
job char(50),
hobby char(50),
home_address char(255),
home_tel char(20),
office_address char(255),
office_tel char(20),
handphone char(20),
mailing char(1) default '0',
birth int(13),
picture char(255),
reg_date int(13),
openinfo char(1) default '+ '+ '1',
is_admin char(1) default '3',
new_memo char(1) default '0',
open_email char(1) default '1',
open_homepage char(1) default '1',
open_icq char(1) default '1',
open_aol char(1) default '1',
open_msn char(1) default '1',
open_comment char(1) default '1',
open_job char(1) default '1',
open_hobby char(1) default '1',
open_home_address char(1) default '1',
open_home_tel char(1) default '+ '1',
open_office_address char(1) default '1'+ ',
open_office_tel char(1) default '1',
open_handphone char(1) default '1',
open_birth char(1) default '1',
open_picture char(1) default '1',
KEY group_no (group_no),
KEY user_id (user_id),
KEY password (password),
KEY name (name)
)
";
저기 밑에 KEY가 하는 역할이 인덱스 인가요?
인덱스라면 활용도가 어떻게 되나요,
그리고 컬럼중에 board_name의 역할도...부탁드립니다.
또,; 왜 제로보드에서는 varchar보다 char로 다 되있나요? 어떤점에서?
댓글 2
-
M@xPond
2003.10.04 22:11
-
TheMics
2003.10.05 01:38
char는 사이즈가 고정입니다. 255로 지정된 곳에 1글자를 넣건 200글자를 넣건 디비가 차지하는 용량은 똑같습니다. 앞의 빈 공간에 공백을 채워넣는다는 이야기죠.
반면 varchar는 1글자를 넣으면 1글자만큼의 용량을, 200글자를 넣으면 역시 그만큼의 용량을 소모합니다. varchar에서 지정 숫자는 그저 제한 길이일 뿐입니다. char가 디비를 더 많이 소모하는 것이죠.
그런데 왜 디비 낭비까지 해가면서 cahr필드를 쓰냐 하면 검색시 더욱 빠른 결과를 얻을 수 있기 때문입니다.
KEY는 인덱스가 맞습니다. 그냥 자료를 불러왔을 때 자동적으로 인덱스순으로 정렬하고 검색속도를 높여주지요. 대신 데이터 로드가 아닌 추가/수정시에 속도가 약간 느려지고 디비 공간을 더 잡아먹습니다.
varchar char의 차이..-_-;;; sql쪽은 아직 수양이 많이 부족한 상태라.... 괜히 varchar로 바꾸면 zeroboard를 두번
죽이는일이라고.....(퍽.!)