[오늘의 배움] MySQL Key, DBAPI, MariaDB vs MySQL

이상민·2021년 2월 24일
0

[오늘의 배움]

목록 보기
50/70
post-thumbnail

1. MySQL Key

mysql에서 키를 표시할 때 PRI, UNI, MUL로 표시한다

+-----------------+---------------+------+-----+---------------------+-------------------------------+
| Field           | Type          | Null | Key | Default             | Extra                         |
+-----------------+---------------+------+-----+---------------------+-------------------------------+
| id              | int(11)       | NO   | PRI | NULL                | auto_increment                |
| name            | varchar(255)  | NO   |     | NULL                |                               |
| email           | varchar(255)  | NO   | UNI | NULL                |                               |
| profile         | varchar(2000) | NO   |     | NULL                |                               |
| hashed_password | varchar(255)  | NO   |     | NULL                |                               |
| created_at      | timestamp     | NO   |     | current_timestamp() |                               |
| updated_at      | timestamp     | YES  |     | NULL                | on update current_timestamp() |
+-----------------+---------------+------+-----+---------------------+-------------------------------+
+------------+--------------+------+-----+---------------------+----------------+
| Field      | Type         | Null | Key | Default             | Extra          |
+------------+--------------+------+-----+---------------------+----------------+
| id         | int(11)      | NO   | PRI | NULL                | auto_increment |
| user_id    | int(11)      | NO   | MUL | NULL                |                |
| tweet      | varchar(300) | NO   |     | NULL                |                |
| created_at | timestamp    | NO   |     | current_timestamp() |                |
+------------+--------------+------+-----+---------------------+----------------+
+----------------+-----------+------+-----+---------------------+-------+
| Field          | Type      | Null | Key | Default             | Extra |
+----------------+-----------+------+-----+---------------------+-------+
| user_id        | int(11)   | NO   | PRI | NULL                |       |
| follow_user_id | int(11)   | NO   | PRI | NULL                |       |
| created_at     | timestamp | NO   |     | current_timestamp() |       |
+----------------+-----------+------+-----+---------------------+-------+

i) PRI(primary key)

  • PRI로 표시된 컬럼은 기본키이거나 기본키에 해당하는 애트리뷰트 중 하나이다

ii) UNI(unique key)

  • UNI로 표시된 컬럼은 UNIQUE 인덱스의 첫번째 컬럼이다

iii) MUL(multiple occurence column)

  • MUL로 표시된 컬럼은 Non-UNIQUE 인덱스의 첫번째 컬럼이다

2. MySQL DBAPI

MySQL은 MySQL Connector라는 이름의 DBAPI를 배포한다

  • DBAPI는 DBMS와 프로그램을 연결시키기위한 API이다

  • "mysql-connector-프로그래밍언어"이름의 라이브러리로 각 언어마다 dbapi를 지원한다

  • DBAPI는 언어와 mysql 자료형 간 변환, 클라/서버 간 데이터 스트림 압축, 소켓을 사용한 연결등의 기능을 제공한다


3. MariaDB vs MySQL

  • MySQL : 90년대 중반에 개발된 RDBMS

  • MariaDB : MySQL의 포크

  • 일반적으로 MariaDB가 속도나 동시 연결에서 좀더 유리하고 라이선스가 더 자유롭다

  • 지원 기능에 있어 조금씩 다르다

  • 아직 한국이나 세계적으로나 RDBMS는 MySQL이 대세인거같다.
profile
편하게 읽기 좋은 단위의 포스트를 추구하는 개발자입니다

0개의 댓글