MySQL 4.1의 TODO리스트 중 일부를 번역했습니다.
1. 온라인 백업(전체 lock이나 DBMS중단없이 백업이 가능함)
2. 서브쿼리
3. MyISAM에서의 Foreign key 지원 (현재는 InnoDB에서만 지원됨)
4. Fail-safe 리플리케이션
5. HEAP테이블의 개선
6. 유니코드 정렬 지원
주로 필수적으로 요구되는 기능들이 추가될 예정입니다.
이상하게 Stored procedure, trigger에 대한 이야기가 빠졌네요. 원래 구현 계획이었다가
빠진것 같네요. -_-;
1.8.2 4.1에서 구현될 것들
아래의 특징들은 MySQL 4.1에서 포함될 계획이다.
일부 특징은 MySQL 4.0에도 추가될 예정이다. MySQL 4.1의 작업중 일부는 벌써 진행중이다.
* 서브쿼리.
SELECT id FROM t WHERE grp IN (SELECT grp FROM g WHERE u > 100);
* 새 테이블 정의 파일 포맷 (`.frm\ files).
이것은 우리가 table에 더 많은 옵션을 추가하는 것을 가능하게해줄 것이다.
사람들은 여전히 4.0의 오래된 `.frm` 파일 포맷을 사용할 수 있을것이다.
그러나, 모든 새로 생성되는 테이블들은 새로운 포맷을 사용할 것이다. 이 새로운
파일 포맷은 새로운 칼럼 타입을 추가하거나, 키를 위한 더 많은 옵션들,
그리고 FOREIGN KEY 정의를 저장하고 받아오는 것을 가능하게 할 것이다.
* SHOW COLUMNS FROM table_name (컬럼명의 확장을 허용하기 위해 mysql client에서 사용되어지는) 은
테이블 자체를 여는 것이 아니라, 다만 정의된 파일만 읽을것이다.
이것은 더 적은 메모리와 더 빠른 수행을 필요로 할것이다.
* cascading delete 를 포함한, MyISAM 테이블에서의 Foreign key 지원
* Fail-safe 리플리케이션.
* Replication이 RAND()와 사용자 변수 @var와 작동.
* 아주 적은 성능상의 손해로 온라인 백업 지원. 온라인 백업은 master 서버를 내리지 않고도
새로운 리플리케이션 slave를 추가하는 것을 쉽게할것이다.
* 유도된 테이블(Derived table)
SELECT a.col1, b.col2
FROM (SELECT MAX(col1) AS col1 FROM root_table) a,
other_table b
WHERE a.col1=b.col1;
This could be done by automatically creating temporary tables for the derived tables for the duration of the query.
* ROLLUP and CUBE OLAP (Online Analytical Processing) grouping options for data warehousing applications.
* Allow DELETE on MyISAM tables to use the record cache. To do this, we need to update the threads
record cache when we update the `.MYD\ file.
* When using SET CHARACTER SET we should translate the whole query at once and not only strings.
This will enable users to use the translated characters in database, table, and column names.
* Add record_in_range() method to MERGE tables to be able to choose the right index when there are many to choose from.
We should also extend the info interface to get the key distribution for each index, if analyze is run on all subtables.
* Resolving the issue of RENAME TABLE on a table used in an active MERGE table possibly corrupting the table.
* 더 빠르고, 더 작은 임베디드 MySQL 라이브러리 (compatible with the old one).
* 안정적인 OpenSSL 지원 (MySQL 4.0 supports rudimentary, not 100% tested, support for OpenSSL).
* 유니코드 정렬을 위한 지원 추가.
* Character set casts and syntax for handling multiple character sets.
* 클라이언트로부터의 모든 명령어를 위한 도움말
* New faster client/server protocol which will support prepared statements, bound parameters,
and bound result columns, binary transfer of data, warnings...
* Add database and real table name (in case of alias) to the MYSQL_FIELD structure.
* Add options to the client/server protocol to get progress notes for long running commands.
* RENAME DATABASE 구현. 모든 테이블 핸들러에 안전하기 만들기 위해, 다음과 같은 일들이 수행되어야한다:
o 새로운 데이타베이스 생성.
o For every table do a rename of the table to another database, as we do with the RENAME command.
o 오래된 데이타베이스 drop.
* 진정한 VARCHAR 지원 추가 (there is already support for this in MyISAM).
* BIT 타입이 1 bit만 소요하도록 최적화 (현재 BIT 은 1 char를 차지한다).
* 새로운 내부 파일 인터페이스 변경.
This will make all file handling much more general and make it easier to add extensions like RAID.
(the current implementation is a hack.)
* 더 나은 in-memory (HEAP) 테이블:
o B-tree indexe 지원
o 동적 크기 rows
o 더 빠른 row 핸들링 (less copying)
|