Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space ML1 and version 5.3
Sv translation
languageen

AUTO_INCREMENT

Many tables have surrogate keys that are auto-populated using AUTO_INCREMENT. This MySQL feature is also supported by ClustrixDB and creates a unique ID as records are inserted into a table. These generated IDs increase monotonically.

Unique Identifiers are valuable in many applications, however generating strictly consecutive IDs is often unnecessary. To guarantee that an AUTO_INCREMENT value is generated consecutively, the database must find the most recent value, increment that value, and then return the next value. This process is repeated for each subsequent insert so that each transaction gets a unique value. Since this process must be serialized, AUTO_INCREMENT becomes a bottleneck for workloads with high concurrency.

Replacing AUTO_INCREMENT with AUTO_UNIQUE

To circumvent the AUTO_INCREMENT bottleneck, ClustrixDB has added a feature called AUTO_UNIQUE. Use AUTO_UNIQUE to generate unique identifiers for IDs when sequential ordering of IDs is not an application requirement.

We recommend reviewing usage of AUTO_INCREMENT values and replacing AUTO_INCREMENT with AUTO_UNIQUE when feasible. 

Alter a column to use AUTO_UNIQUE
sql> ALTER TABLE table1 MODIFY COLUMN id bigint(0) unsigned auto_unique;
Note

AUTO_UNIQUE columns must be of type BIGINT(0) unsigned.

Sv translation
languageko

AUTO_INCREMENT

테이블에 AUTO_INCREMENT를 대체키로 사용하는 경우가 많이 있습니다. 이 MySQL 기능은 ClustrixDB에서도 지원되며 레코드가 테이블에 삽입될 때 고유한 ID를 생성합니다. 생성된 ID는 순차적으로 증가합니다.

고유 식별자는 많은 응용 프로그램에서 유용하지만, 엄격하게 연속으로 증가하는 ID를 생성하는 것은 불필요할 경우가 많습니다. AUTO_INCREMENT 값이 연속적으로 생성되도록 하려면 데이터베이스는 가장 최근의 값을 찾아 증가시키고 그 다음 값을 반환해야 합니다. 이 프로세스는 각 트랜잭션이 고유 값을 갖도록 각 후속 삽입에 대해 반복됩니다. 이 프로세스는 직렬화되어야 하므로 AUTO_INCREMENT는 동시성이 높은 워크로드에서 병목을 유발합니다.

AUTO_INCREMENT를 AUTO_UNIQUE로 대체

AUTO_INCREMENT 병목을 피하기 위해 ClustrixDB는 AUTO_UNIQUE라는 기능을 추가했습니다. 응용 프로그램에서 ID의 순차 정렬이 필요하지 않은 경우 AUTO_UNIQUE를 사용하여 ID의 고유 식별자를 생성하십시오.

가능한 경우 AUTO_INCREMENT 값의 사용을 검토하고 AUTO_INCREMENT를 AUTO_UNIQUE로 바꾸는 것이 좋습니다. 

AUTO_UNIQUE를 사용하도록 열을 변경합니다.
sql> ALTER TABLE table1 MODIFY COLUMN id bigint(0) auto_unique;
Note

AUTO_UNIQUE 열은 BIGINT(0) 타입이어야 합니다.