DriverまたはORMを選択

注記:

TiDB は、ドライバーと ORM に対して次の 2 つのサポート レベルを提供します。

  • 完全: TiDB がツールのほとんどの機能と互換性があり、新しいバージョンとの互換性を維持していることを示します。PingCAP は、最新バージョンTiDB がサポートするサードパーティ ツールとの互換性テストを定期的に実施します。
  • 互換性あり: 対応するサードパーティ ツールが MySQL に適合しており、TiDB が MySQL プロトコルと高い互換性があるため、TiDB はツールのほとんどの機能を使用できることを示します。ただし、PingCAP はツールのすべての機能の完全なテストを完了していないため、予期しない動作が発生する可能性があります。

詳細についてはTiDB がサポートするサードパーティ ツールを参照してください。

TiDB は MySQL プロトコルと高い互換性がありますが、一部の機能は MySQL と互換性がありません。互換性の違いの完全なリストについては、 MySQL 互換性参照してください。

Java

このセクションでは、 Javaでドライバーと ORM フレームワークを使用する方法について説明します。

Javaドライバー

  • MySQL-JDBC
  • TiDB-JDBC

サポートレベル:フル

MySQL ドキュメントに従って、 Java JDBC ドライバーをダウンロードして構成できます。TiDB v6.3.0 以降では、MySQL Connector/J 8.0.33 以降を使用することをお勧めします。

ヒント:

8.0.32 より前の Connector/J 8.0 バージョンにはバグがあり、v6.3.0 より前の TiDB バージョンを使用するとスレッドがハングする可能性があります。この問題を回避するには、MySQL Connector/J 8.0.32 以降のバージョン、または TiDB JDBC ( TiDB-JDBCタブを参照) を使用することをお勧めします。

完全なアプリケーションを構築する方法の例については、 TiDB と JDBC を使用してシンプルな CRUD アプリを構築する参照してください。

サポートレベル:フル

TiDB-JDBCは、MySQL 8.0.29 をベースにカスタマイズされたJavaドライバーです。MySQL 公式バージョン 8.0.29 をベースにコンパイルされた TiDB-JDBC は、元の JDBC の準備モードでのマルチパラメータおよびマルチフィールド EOF のバグを修正し、自動 TiCDC スナップショット メンテナンスや SM3 認証プラグインなどの機能を追加します。

SM3 ベースの認証は、TiDB の TiDB-JDBC でのみサポートされます。

Maven を使用している場合は、 pom.xmlファイルの<dependencies></dependencies>セクションに次のコンテンツを追加します。

<dependency> <groupId>io.github.lastincisor</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29-tidb-1.0.0</version> </dependency>

SM3 認証を有効にする必要がある場合は、 pom.xmlファイルの<dependencies></dependencies>セクションに次のコンテンツを追加します。

<dependency> <groupId>io.github.lastincisor</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29-tidb-1.0.0</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.67</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk15on</artifactId> <version>1.67</version> </dependency>

Gradle を使用する場合は、 dependenciesに次の内容を追加します。

implementation group: 'io.github.lastincisor', name: 'mysql-connector-java', version: '8.0.29-tidb-1.0.0' implementation group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.67' implementation group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: '1.67'

Java ORM フレームワーク

注記:

  • Hibernate
  • MyBatis

サポートレベル:フル

アプリケーションのさまざまな依存関係間の複雑な関係を手動で管理することを避けるために、 グラドルまたはメイヴンを使用して、間接的なものも含め、アプリケーションのすべての依存関係を取得できます。TiDB 方言をサポートしているのは Hibernate 6.0.0.Beta2以上であることに注意してください。

Maven を使用している場合は、 <dependencies></dependencies>に以下を追加します。

<dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>6.0.0.CR2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> </dependency>

Gradle を使用している場合は、 dependenciesに以下を追加します。

implementation 'org.hibernate:hibernate-core:6.0.0.CR2' implementation 'mysql:mysql-connector-java:5.1.49'

さらに、 Hibernate 設定ファイル : org.hibernate.dialect.TiDBDialectで TiDB 方言を指定する必要がありますが、これは Hibernate 6.0.0.Beta2以上でのみサポートされています。 Hibernateバージョンが6.0.0.Beta2より前の場合は、まずアップグレードしてください。

注記:

Hibernateバージョンをアップグレードできない場合は、代わりにMySQL 5.7方言org.hibernate.dialect.MySQL57Dialectを使用してください。ただし、この設定では予期しない結果が生じたり、 シーケンスなどの一部の TiDB 固有の機能が使用できなくなる可能性があります。

サポートレベル:フル

アプリケーションのさまざまな依存関係間の複雑な関係を手動で管理することを避けるために、 グラドルまたはメイヴンを使用して、間接的な依存関係も含め、アプリケーションのすべての依存関係を取得できます。

Maven を使用している場合は、 <dependencies></dependencies>に以下を追加します。

<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.9</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> </dependency>

Gradle を使用している場合は、 dependenciesに以下を追加します。

implementation 'org.mybatis:mybatis:3.5.9' implementation 'mysql:mysql-connector-java:5.1.49'

MyBatis を使用して TiDB アプリケーションを構築する例については、 TiDB と MyBatis を使ってシンプルな CRUD アプリを構築する参照してください。

Javaクライアント負荷分散

tidb ロードバランス

サポートレベル:フル

tidb ロードバランス 、アプリケーション側の負荷分散コンポーネントです。tidb-loadbalance を使用すると、TiDBサーバーのノード情報を自動的に維持し、tidb-loadbalance ポリシーを使用してクライアント上の JDBC 接続を分散できます。クライアント アプリケーションと TiDBサーバー間の直接 JDBC 接続を使用すると、負荷分散コンポーネントを使用するよりもパフォーマンスが高くなります。

現在、tidb-loadbalance は、ラウンドロビン、ランダム、重み付けのポリシーをサポートしています。

注記:

tidb-loadbalance はmysql-コネクタ-jで使用する必要があります。

Maven を使用している場合は、 pom.xmlファイルの<dependencies></dependencies>の要素本体に次のコンテンツを追加します。

<dependency> <groupId>io.github.lastincisor</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29-tidb-1.0.0</version> </dependency> <dependency> <groupId>io.github.lastincisor</groupId> <artifactId>tidb-loadbalance</artifactId> <version>0.0.5</version> </dependency>

Gradle を使用している場合は、次の内容をdependenciesに追加します。

implementation group: 'io.github.lastincisor', name: 'mysql-connector-java', version: '8.0.29-tidb-1.0.0' implementation group: 'io.github.lastincisor', name: 'tidb-loadbalance', version: '0.0.5'

Golang

このセクションでは、 Golangでドライバーと ORM フレームワークを使用する方法について説明します。

Golangドライバー

go-sql-ドライバー/mysql

サポートレベル:フル

Golangドライバーをダウンロードして設定するには、 go-sql-driver/mysql ドキュメントを参照してください。

完全なアプリケーションを構築する方法の例については、 Go-MySQL-Driver で TiDB に接続する参照してください。

Golang ORMフレームワーク

ゴーム

サポートレベル:フル

GORM は、 Golang用の人気のある ORM フレームワークです。アプリケーション内のすべての依存関係を取得するには、 go getコマンドを使用できます。

go get -u gorm.io/gorm go get -u gorm.io/driver/mysql

GORM を使用して TiDB アプリケーションを構築する例については、 GORMでTiDBに接続する参照してください。

パイソン

このセクションでは、Python でドライバーと ORM フレームワークを使用する方法について説明します。

Python ドライバー

  • PyMySQL
  • mysqlclient
  • MySQL Connector/Python

サポートレベル:互換

PyMySQL ドキュメントに従ってドライバーをダウンロードして設定します。PyMySQL 1.0.2 以降のバージョンを使用することをお勧めします。

PyMySQL を使用して TiDB アプリケーションを構築する例については、 PyMySQLでTiDBに接続する参照してください。

サポートレベル:互換

mysqlclient ドキュメントに従ってドライバーをダウンロードして設定します。mysqlclient 2.1.1 以降のバージョンを使用することをお勧めします。

mysqlclient を使用して TiDB アプリケーションを構築する例については、 mysqlclientでTiDBに接続する参照してください。

サポートレベル:互換

MySQL コネクタ/Python ドキュメントに従ってドライバーをダウンロードして設定します。Connector/Python 8.0.31 以降のバージョンを使用することをお勧めします。

MySQL Connector/Python を使用して TiDB アプリケーションを構築する例については、 MySQL Connector/Python で TiDB に接続する参照してください。

Python ORM フレームワーク

  • Django
  • SQLAlchemy
  • peewee

サポートレベル:フル

ジャンゴは人気の Python Web フレームワークです。TiDB と Django 間の互換性の問題を解決するために、PingCAP は TiDB 方言django-tidbを提供しています。これをインストールするには、 django-tidbドキュメント参照してください。

Django を使用して TiDB アプリケーションを構築する例については、 Django で TiDB に接続する参照してください。

サポートレベル:フル

SQLアルケミーは Python 用の人気のある ORM フレームワークです。アプリケーション内のすべての依存関係を取得するには、 pip install SQLAlchemy==1.4.44コマンドを使用できます。SQLAlchemy 1.4.44 以降のバージョンを使用することをお勧めします。

SQLAlchemy を使用して TiDB アプリケーションを構築する例については、 SQLAlchemy で TiDB に接続する参照してください。

サポートレベル:互換

ピーウィーは Python 用の人気のある ORM フレームワークです。アプリケーション内のすべての依存関係を取得するには、 pip install peewee==3.15.4コマンドを使用できます。peewee 3.15.4 以降のバージョンを使用することをお勧めします。

peewee を使用して TiDB アプリケーションを構築する例については、 peeweeでTiDBに接続する参照してください。

このページは役に立ちましたか?