# Compared with inception
# Function comparison:
| Function | inception | goInception | Description |
|---|---|---|---|
| Audit | ✓ | ✓ | Basically no difference |
| Execute | ✓ | ✓ | Basically no difference |
| pt-osc tool | ✓ | ✓ | Basically no difference |
| gh-ost tool | ✕ | ✓ | |
| Backup | ✓ | ✓ | Basically no difference |
| Ignore warning parameters | ✓ | ✓ | Basically no difference |
| Read-only parameter | ✓ | ✕ | goinception not provided |
| Syntax tree | ✓ | ✓ | The syntax tree of inception is more friendly |
| Split function of DDL and DML | ✓ | ✓ | goinception supports mixed execution and will not affect rollback analysis |
| Hibernate after executing a batch | ✓ | ✓ | goinception supports sleeping after executing the specified number |
| Number of affected rows | ✕ | ✓ | goinception supports the calculation of the actual number of affected rows |
| Transaction | ✕ | ✓ | |
| SQL fingerprint | ✕ | ✓ | When the dml statements are similar, the explain results can be reused according to the same fingerprint ID to reduce the remote database explain operations and improve the audit speed |
# Speed comparison
| Stage | inception | goInception | Description |
|---|---|---|---|
| Audit | ☆☆ | ☆☆ | Slightly better review speed inception |
| Execute | ☆☆ | ☆☆ | Similar execution speed |
| Backup | ☆ | ☆☆ | Goinception leads in backup speed (batch backup), which has a greater advantage |
# Difficult to get started
| operating | inception | goInception | Description |
|---|---|---|---|
| Rapid deployment | ☆ | ☆☆ | Goinception can use binary deployment, download and use |
| Problem debugging | ☆ | ☆☆ | Goinception has a lot of log output, which is easy to locate the problem quickly |
| Interface call | Limited to python,c,c++ | As long as the language of mysql database driver is implemented, the call is supported |