---
title: "MySQL Protocol Compatibility"
---

# MySQL Protocol Compatibility

Detailed feature compatibility matrix for MySQL protocol support in HeliosDB.

## Protocol Compatibility

| Feature | Result | Coverage | Notes |
|---------|--------|----------|-------|
| Wire Protocol v10 | Supported | 100% | Full handshake and command protocol |
| Authentication | Partial | — | mysql_native_password and caching_sha2_password handshakes; the role name is checked, the password is not yet verified (see [Configuration](/docs/full/reference/protocols/mysql/configuration/#authentication)) |
| Prepared Statements | Supported | 100% | Binary protocol |
| Multi-Statement | Supported | 100% | CLIENT_MULTI_STATEMENTS |
| Compression | Not supported | — | Clients connect uncompressed |
| SSL/TLS | Not supported | — | Plaintext only; keep the listener on a private network or use a tunnel |

## SQL Language Features

### Data Definition Language (DDL)

| Feature | Result | Notes |
|---------|--------|-------|
| CREATE DATABASE | Supported | - |
| CREATE TABLE | Supported | All column types |
| CREATE INDEX | Supported | B-tree, hash, fulltext |
| CREATE VIEW | Supported | - |
| ALTER TABLE | Supported | ADD/DROP/MODIFY columns |
| DROP statements | Supported | All DROP operations |
| TRUNCATE TABLE | Supported | - |

### Data Manipulation Language (DML)

| Feature | Result | Notes |
|---------|--------|-------|
| SELECT | Supported | Full query capabilities |
| INSERT | Supported | Single and bulk |
| UPDATE | Supported | With WHERE clause |
| DELETE | Supported | With WHERE clause |
| REPLACE | Supported | MySQL-specific |
| INSERT... ON DUPLICATE KEY UPDATE | Supported | Upsert semantics |
| LOAD DATA INFILE | Supported | Bulk loading |

### Transaction Control

| Feature | Result | Notes |
|---------|--------|-------|
| START TRANSACTION | Supported | - |
| COMMIT | Supported | - |
| ROLLBACK | Supported | - |
| SAVEPOINT | Supported | - |
| SET autocommit | Supported | - |
| Isolation Levels | Supported | All four levels |

### MySQL-Specific Features

| Feature | Result | Notes |
|---------|--------|-------|
| AUTO_INCREMENT | Supported | Auto-incrementing columns |
| SHOW commands | Supported | SHOW DATABASES, TABLES, COLUMNS, etc. |
| DESCRIBE/EXPLAIN | Supported | Query plan analysis |
| USE database | Supported | Database switching |
| SET variables | Supported | Session variables |
| Information Schema | Supported | System tables |
| Performance Schema | Partial | Limited support |

## Data Types

### Numeric Types

| Type | Result | Notes |
|------|--------|-------|
| TINYINT | Supported | 1 byte |
| SMALLINT | Supported | 2 bytes |
| MEDIUMINT | Supported | 3 bytes |
| INT/INTEGER | Supported | 4 bytes |
| BIGINT | Supported | 8 bytes |
| DECIMAL/NUMERIC | Supported | Exact precision |
| FLOAT | Supported | 4 bytes |
| DOUBLE | Supported | 8 bytes |
| BIT | Supported | Bit-field |

### String Types

| Type | Result | Notes |
|------|--------|-------|
| CHAR | Supported | Fixed-length |
| VARCHAR | Supported | Variable-length |
| TEXT | Supported | All sizes (TINY, MEDIUM, LONG) |
| BLOB | Supported | All sizes |
| ENUM | Supported | Enumeration |
| SET | Supported | Set type |
| JSON | Supported | Native JSON |

### Date/Time Types

| Type | Result | Notes |
|------|--------|-------|
| DATE | Supported | Date only |
| TIME | Supported | Time only |
| DATETIME | Supported | Date and time |
| TIMESTAMP | Supported | Unix timestamp |
| YEAR | Supported | Year only |

### Spatial Types

| Type | Result | Notes |
|------|--------|-------|
| GEOMETRY | Supported | Base type |
| POINT | Supported | 2D point |
| LINESTRING | Supported | Line |
| POLYGON | Supported | Polygon |

## Functions

### String Functions

| Function | Result |
|----------|--------|
| CONCAT, CONCAT_WS | Supported |
| SUBSTRING, LEFT, RIGHT | Supported |
| UPPER, LOWER | Supported |
| TRIM, LTRIM, RTRIM | Supported |
| REPLACE | Supported |
| LENGTH, CHAR_LENGTH | Supported |
| LIKE, REGEXP | Supported |

### Numeric Functions

| Function | Result |
|----------|--------|
| ABS, CEIL, FLOOR | Supported |
| ROUND, TRUNCATE | Supported |
| MOD, POW | Supported |
| RAND | Supported |
| SUM, AVG, COUNT | Supported |
| MIN, MAX | Supported |

### Date/Time Functions

| Function | Result |
|----------|--------|
| NOW, CURDATE, CURTIME | Supported |
| DATE_ADD, DATE_SUB | Supported |
| DATEDIFF, TIMESTAMPDIFF | Supported |
| DATE_FORMAT | Supported |
| YEAR, MONTH, DAY | Supported |
| UNIX_TIMESTAMP | Supported |

### JSON Functions

| Function | Result |
|----------|--------|
| JSON_EXTRACT | Supported |
| JSON_SET, JSON_INSERT | Supported |
| JSON_REMOVE | Supported |
| JSON_ARRAY, JSON_OBJECT | Supported |
| JSON_CONTAINS | Supported |
| JSON_KEYS | Supported |

## Known Limitations

1. **Stored Procedures**: Limited support
2. **Triggers**: Partial support (basic triggers work)
3. **Events**: Scheduled events not yet supported
4. **User-Defined Functions**: UDFs not supported
5. **Full-Text Search**: Works but with different ranking algorithm

## Migration Notes

When migrating from MySQL to HeliosDB:

1. **Connection Strings**: Change host/port only; protocol is compatible
2. **SQL Syntax**: Most queries work without modification
3. **Data Types**: All standard types are supported
4. **Indexes**: Recreate indexes for optimal performance
5. **Stored Procedures**: May require rewriting in SQL

See [Migration Guide](https://www.heliosdb.com/docs/full/reference/protocols/migrations/migration_from_mysql_to_heliosdb/) for detailed migration steps.

---
