Tous les produits
Search
Centre de documentation

PolarDB:Limites du développement de bases de données

Dernière mise à jour :Aug 11, 2026

PolarDB-X est hautement compatible avec le protocole MySQL et la syntaxe SQL. Toutefois, comme il s'agit d'une base de données distribuée, certaines fonctionnalités MySQL se comportent différemment ou ne sont pas prises en charge. Consultez ces limites avant de commencer le développement ou de migrer une application existante.

Limites des identifiants courants

Identifiant Longueur maximale Caractères autorisés
Base de données 32 Lettres majuscules et minuscules, chiffres et traits de soulignement (_)
Séquence 128 Caractères Unicode
Partition 16
Table 64
Colonne
Clé de partition
Vue
Variables
Contrainte

Limites d'utilisation des ressources

Ressources logiques

Ressource Limite
Bases de données par cluster 32
Tables par base de données 8 192
Partitions par table 8 192
Colonnes par table 1 017
Séquences par base de données 16 384
Vues par base de données 8 192
Index globaux par table 32
Utilisateurs par base de données 2 048 (nom d'utilisateur : 255 caractères maximum)

Ressources physiques

Ressource Limite par défaut
Connexions par nœud de calcul 20 000
Nœuds de calcul ajoutés simultanément 99. Pour ajouter plus de nœuds en une seule fois, contactez le support technique Alibaba Cloud.
Nœuds de stockage ajoutés simultanément

Limites de la syntaxe SQL

Certaines limites découlent des contraintes architecturales des systèmes distribués. D'autres seront levées dans de futures versions.

Fonctionnalités non prises en charge

PolarDB-X ne prend pas en charge les fonctionnalités MySQL suivantes.

Opérations personnalisées

Fonctionnalité Notes
Type de données personnalisé Non pris en charge
Déclencheur Non pris en charge

DDL

Instruction Notes
CREATE TABLE ... LIKE ... Tables partitionnées non prises en charge
CREATE TABLE ... SELECT ... Tables partitionnées non prises en charge
Opérations MERGE, SPLIT, ADD et DROP sur les tables sous-partitionnées Non prises en charge
Opérations MERGE, SPLIT, ADD et DROP sur les tables d'index partitionnées Non prises en charge

DML

Instruction Notes
STRAIGHT_JOIN Non pris en charge
NATURAL JOIN Non pris en charge
INSERT DELAYED Non pris en charge
Références et opérations sur variables (par exemple, SET @c=1, @d=@c+1; SELECT @c, @d) Non prises en charge
LOAD XML Non pris en charge

DQL

Instruction Notes
Sous-requêtes dans une clause HAVING Non prises en charge
Sous-requêtes dans une clause JOIN ... ON Non prises en charge

Gestion de base de données

Instruction Notes
SHOW WARNINGS Combinaison de LIMIT et COUNT non prise en charge
SHOW ERRORS Combinaison de LIMIT et COUNT non prise en charge
HELP Non pris en charge

Opérateurs

Opérateur Notes
:= Non pris en charge

Fonctions

Fonction Notes
Fonctions de recherche en texte intégral Non prises en charge
Fonctions XML Non prises en charge
Fonctions pour les identifiants de transaction globale Non prises en charge

Types de données

Type Notes
Types de données spatiales (GEOMETRY, LINESTRING) Non pris en charge
Type de données JSON Pris en charge, mais inutilisable comme clé de partition

Mots-clés

Mot-clé Notes
MILLISECOND Non pris en charge
MICROSECOND Non pris en charge

Fonctionnalités prises en charge

Les opérations personnalisées et instructions DDL suivantes sont prises en charge :

Fonctionnalité Notes
Fonction définie par l'utilisateur Prise en charge
Procédure stockée Prise en charge
Curseur Pris en charge
Vue Prise en charge
CREATE TABLE ... Generated Column ... Pris en charge
RENAME TABLE Pris en charge
ALTER TABLE Pris en charge
Clé étrangère Prise en charge
Sous-requête comme opérande scalaire Prise en charge

Différences de comportement par rapport à MySQL

Les instructions suivantes sont prises en charge, mais leur comportement diffère de celui de MySQL standard.

UPDATE avec ON UPDATE CURRENT_TIMESTAMP

Dans PolarDB-X, toute instruction UPDATE logique actualise l'horodatage d'une colonne dotée de l'attribut ON UPDATE CURRENT_TIMESTAMP, même si aucune autre colonne n'a été modifiée. Dans MySQL, cette mise à jour ne s'effectue que si au moins une autre colonne change de valeur.

Exemple

-- Create a table with an ON UPDATE CURRENT_TIMESTAMP column
CREATE TABLE t (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

INSERT INTO t VALUES (1, 'Alice', NOW());

-- Update with no actual data change
UPDATE t SET name = 'Alice' WHERE id = 1;

-- PolarDB-X: updated_at is refreshed to CURRENT_TIMESTAMP
-- MySQL:      updated_at is NOT refreshed (no data changed)
SELECT id, name, updated_at FROM t WHERE id = 1;

Si la logique de votre application repose sur le comportement de MySQL qui laisse updated_at inchangé en l'absence de modification des données, adaptez vos requêtes ou votre code applicatif avant de migrer vers PolarDB-X.