안녕하세요 mysql을 공부 하고 있는데 막히는 부분이 있어서 이렇게 질문을 드립니다.
예를 들어서 테이블을 아래와 같이 생성한 후에
create table test (num int(4) auto_increment primary key, data char(10))
+-------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+----------------+
| num | int(4) | NO | PRI | NULL | auto_increment |
| data | char(10) | YES | | NULL | |
+-------+----------+------+-----+---------+----------------+
inset 문으로 레코드를 삽입을 하게 되면
insert into test values(0,"aa");
insert into test values(0,"bb");
insert into test values(0,"cc");
insert into test values(0,"dd");
이와 같이 레코드들이 삽입 되어 있습니다.
+-----+------+
| num | data |
+-----+------+
| 1 | aa |
| 2 | bb |
| 3 | cc |
| 4 | dd |
+-----+------+
저장된 레코드 들은 내림 차순으로 정렬을 해서 보게 되면
select * from test order by num desc; 이렇게 쿼리를 날려야 하는데
레코드들이 너무 많은 경우 약 1000만개 라고 하면 시간이 너무 많이 걸리게 됩니다.
그래서 처음부터 로그를 insert할때
+-----+------+
| num | data |
+-----+------+
| 4 | dd |
| 3 | cc |
| 2 | bb |
| 1 | aa |
+-----+------+
위와 같이 입력 할 수 있는 방법이 있을까여??
이렇게 저장되면 order by를 이용하지 않고 바로 limit 로 보여 질 수 있을거 같은데
해결 할 수 있는 방법을 모르겠습니다.
초보적은 질문 이지만 좋은 방법이 있으면 여러 고수님들의 답변을 듣고 싶습니다.
|