ㅋㅋ 아놔 인덱스
index를 거는데 1만 페이지 이상 (15만 게시글 이상) 올라가면 너무 느려지네요 ㅠㅠ
물론 1~100페이지정도까진 느려지지 않지만
page가 1만 정도 올려버리면 뒷부분에서만 느려집니다..(...)
뭐 ㅡ_ㅡ; 검색조건 다 빼버리면 무척 빨라지는데...
게시판, 코멘트를 분리해야 속 시원한 속도가 나오려나요 ㅠㅠ....
where 구문에 and가 하나 붙을때마다 +0.3초정도 늦어지는듯 ㅠㅠ 엉엉
물론 1~100페이지정도까진 느려지지 않지만
page가 1만 정도 올려버리면 뒷부분에서만 느려집니다..(...)
뭐 ㅡ_ㅡ; 검색조건 다 빼버리면 무척 빨라지는데...
게시판, 코멘트를 분리해야 속 시원한 속도가 나오려나요 ㅠㅠ....
where 구문에 and가 하나 붙을때마다 +0.3초정도 늦어지는듯 ㅠㅠ 엉엉
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 16개
레코드가 많이 쌓일수록 이런현상이 일어나는것 같은데ㅠㅠ...
저같은 경우 between을 이용한 방법을 추천합니다
근데 페이지 계산을 할 수가 없네요 ㅠㅠ 으앙
한번 테스트 해보세요
http://www.sahaboard.com/index.html?sahaid=16
클릭하니 바로떠요
조건검색을 제거했다고 해도 검색에서도 굉장한 속도가 나오는군요.
소팅도 마찬가지로 빠르군요.
대단합니다.
between으로는 중간에 삭제된 게시물이 있을경우
목록 15개를 채우는 방법을 모르겠네요 ㅠㅠ...
그리고 인덱스키도 인식이 안되는데 ㅠㅠ (속도는 빠르지만...)
테이블좀 볼 수 없을까요 ;ㅅ;?
-- phpMyAdmin SQL Dump
-- version 3.2.3
-- http://www.phpmyadmin.net
--
-- 호스트: localhost
-- 처리한 시간: 10-05-28 09:10
-- 서버 버전: 5.0.90
-- PHP 버전: 5.2.9p2
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- 테이블 구조 `saha_board_default`
--
CREATE TABLE IF NOT EXISTS `saha_board_default` (
`BO_UID` int(10) unsigned NOT NULL auto_increment,
`BO_BETWEEN` int(10) unsigned NOT NULL,
`BO_SAHAID` int(10) unsigned NOT NULL,
`BO_OID` int(10) unsigned NOT NULL,
`BO_RID` int(10) unsigned NOT NULL,
`BO_DEPTH` int(10) unsigned NOT NULL,
`BO_PARENT` int(10) unsigned NOT NULL,
`BO_MB_UID` int(10) unsigned NOT NULL,
`BO_NAME` varchar(255) NOT NULL,
`BO_PASS` varchar(255) NOT NULL,
`BO_SUBJECT` varchar(255) NOT NULL,
`BO_CONTENT` mediumtext NOT NULL,
`BO_CATEGORY` varchar(255) NOT NULL,
`BO_URLLINK1` text NOT NULL,
`BO_URLTEXT1` varchar(255) NOT NULL,
`BO_URLLINK2` text NOT NULL,
`BO_URLTEXT2` varchar(255) NOT NULL,
`BO_MOVIELINK1` text NOT NULL,
`BO_MOVIETEXT1` varchar(255) NOT NULL,
`BO_MOVIELINK2` text NOT NULL,
`BO_MOVIETEXT2` varchar(255) NOT NULL,
`BO_SECRET` int(1) unsigned NOT NULL,
`BO_HIT` int(10) unsigned NOT NULL,
`BO_REQ` int(10) unsigned NOT NULL,
`BO_CONUM` int(10) unsigned NOT NULL,
`BO_DOWNLOAD` int(10) unsigned NOT NULL,
`BO_IP` varchar(15) NOT NULL,
`BO_FILE` varchar(255) NOT NULL,
`BO_WRITEDATE` bigint(14) unsigned NOT NULL,
`BO_MODIFYDATE` bigint(14) unsigned NOT NULL,
`BO_ADDINT1` int(10) NOT NULL,
`BO_ADDINT2` int(10) NOT NULL,
`BO_ADDINT3` int(10) NOT NULL,
`BO_ADDINT4` int(10) NOT NULL,
`BO_ADDINT5` int(10) NOT NULL,
`BO_ADDINT6` int(10) NOT NULL,
`BO_ADDINT7` int(10) NOT NULL,
`BO_ADDINT8` int(10) NOT NULL,
`BO_ADDINT9` int(10) NOT NULL,
`BO_ADDINT10` int(10) NOT NULL,
`BO_ADDCHAR1` varchar(255) NOT NULL,
`BO_ADDCHAR2` varchar(255) NOT NULL,
`BO_ADDCHAR3` varchar(255) NOT NULL,
`BO_ADDCHAR4` varchar(255) NOT NULL,
`BO_ADDCHAR5` varchar(255) NOT NULL,
`BO_ADDCHAR6` varchar(255) NOT NULL,
`BO_ADDCHAR7` varchar(255) NOT NULL,
`BO_ADDCHAR8` varchar(255) NOT NULL,
`BO_ADDCHAR9` varchar(255) NOT NULL,
`BO_ADDCHAR10` varchar(255) NOT NULL,
`BO_ADDTEXT1` mediumtext NOT NULL,
`BO_ADDTEXT2` mediumtext NOT NULL,
`BO_ADDTEXT3` mediumtext NOT NULL,
`BO_ADDTEXT4` mediumtext NOT NULL,
`BO_ADDTEXT5` mediumtext NOT NULL,
`BO_ADDTEXT6` mediumtext NOT NULL,
`BO_ADDTEXT7` mediumtext NOT NULL,
`BO_ADDTEXT8` mediumtext NOT NULL,
`BO_ADDTEXT9` mediumtext NOT NULL,
`BO_ADDTEXT10` mediumtext NOT NULL,
PRIMARY KEY (`BO_UID`),
KEY `BO_SAHAID` (`BO_SAHAID`),
KEY `BO_OID` (`BO_OID`),
KEY `BO_RID` (`BO_RID`),
KEY `BO_DEPTH` (`BO_DEPTH`),
KEY `BO_PARENT` (`BO_PARENT`),
KEY `BO_MB_UID` (`BO_MB_UID`),
KEY `BO_DATA_ASC` (`BO_SAHAID`,`BO_OID`,`BO_RID`),
KEY `BO_BETWEEN_ASC` (`BO_SAHAID`,`BO_BETWEEN`),
KEY `BO_NAME` (`BO_NAME`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
테이블을 불러오는 sql을 볼 수 있을까요?
between으로 15개만 뽑아오는게 무지 햇갈려서 ㅠㅠ..;;
explain 으로 쿼리문을 돌려보시면서 인덱스를 제대로 타는지 확인해보세요
인덱스는 잘 탑니다만 ㅠㅠ 엉엉