아래에서 테스트하고 있습니다.
http://chemie.skku.ac.kr/moniwiki/wiki.php
현재 CVS백엔드 + MySQL 캐쉬가 함께 작동하고있습니다
아래와 같은 식으로 스키마를 조금 바꾸었습니다.
어느정도 이상없이 작동하면 올리겠습니다.
-----
#!/bin/bash
DB_NAME="MONIWIKI"
DB_USER="mysql"
DB_HOST="localhost"
DB_TABLE="UnnamedWiki"
# 다중 위키를 쓸 수 있게 조금 바꾸었습니다.
cat <<EOF | mysql -u $DB_USER -h $DB_HOST $DB_NAME -p
create table $DB_TABLE
(
pagename CHAR(255) binary NOT NULL,
content MEDIUMTEXT,
PRIMARY KEY(pagename)
) TYPE=MyISAM;
create table ${DB_TABLE}_info (
pagename CHAR(255) binary NOT NULL,
revision CHAR(80) DEFAULT '1.1',
userid CHAR(80) DEFAULT 'Anonymous',
utime TIMESTAMP(14) DEFAULT NULL,
pageid INT(12) unsigned NOT NULL,
UNIQUE INDEX idx_pagename(pagename(30)),
KEY idx_recently(utime desc)
) TYPE=MyISAM;
EOF
-----
{{{
pageid INT(12) unsigned AUTO_INCREMENT,
}}}
원래 스키마에는 pageid가 있었는데, 한번 빼어 보았습니다. pageid가 없어도 될 것 같은데, 있을 때와 없을 때의 차이점은 무엇이죠 ?
(일단 저는 MySQL을 아직 잘 모르기때문에 질문드립니다. ^^;;)
pagename도 addslashes()를 해야 할 것 같은데, pagekey로 쓸지 (_20_34_bc_a3 과 같은 형식의 모인모인/모니위키 내부 페이지 키) addslashes(pagename)를 쓸것인지도 결정 안했습니다.
----
랜더링 결과를 캐싱하게 한다면, 임의의 페이지 내용이 틀려졌을 경우 랜더링을 다시 하게 하는 방식을 써야 하는데, 이 경우는 어떤 식으로 하면 좋을까요 ?
----
기타, SQL 캐쉬를 효율적으로 써먹기 위해서
Search함수를 캐쉬에 맞게 적용해야 하는 등등의
여러가지 할 일이 보입니다.