| | 6 | |
| | 7 | InnoDB е транзакциски storage engine и е стандардниот во новите верзии на MySQL. |
| | 8 | |
| | 9 | '''InnoDB''' Главни карактеристики: |
| | 10 | |
| | 11 | * Поддршка за транзакции |
| | 12 | → Може да се користат BEGIN, COMMIT, и ROLLBACK. |
| | 13 | → Обезбедува ACID (Atomicity, Consistency, Isolation, Durability) принципи, што значи дека податоците секогаш остануваат конзистентни. |
| | 14 | * Row-level locking |
| | 15 | → Само редовите што се менуваат се заклучуваат, што овозможува повеќе корисници истовремено да работат без конфликти. |
| | 16 | → Подобро перформанс при повеќе паралелни операции. |
| | 17 | * Foreign Keys |
| | 18 | → Поддржува референтен интегритет (врски меѓу табели преку FOREIGN KEY), со автоматско бришење или ажурирање поврзани редови. |
| | 19 | * Crash recovery |
| | 20 | → Има redo log и undo log, кои овозможуваат автоматско враќање на податоците по пад на серверот. |
| | 21 | * Подобро за апликации со многу INSERT/UPDATE/DELETE операции |
| | 22 | → На пример, системи со резервации (како airportdb). |
| | 23 | |
| | 24 | |
| | 25 | MyISAM е постара, не-транзакциска storage engine, користена во постари MySQL бази. |
| | 26 | |
| | 27 | '''MyISAM''' Главни карактеристики: |
| | 28 | |
| | 29 | * Без транзакции |
| | 30 | → Нема COMMIT и ROLLBACK; ако операцијата се прекине, дел од податоците може да останат неконзистентни. |
| | 31 | * Table-level locking |
| | 32 | → Целата табела се заклучува при INSERT, UPDATE или DELETE. |
| | 33 | → Ова може да создаде застои при повеќе корисници. |
| | 34 | * Брза при читање (SELECT) |
| | 35 | → Добра за read-heavy апликации (на пример, статистички бази или веб-сајтови со многу читања, но малку ажурирања). |
| | 36 | * Нема поддршка за Foreign Keys |
| | 37 | → Одговорноста за интегритет на податоците паѓа на апликацијата, не на базата. |
| | 38 | * Попроста структура |
| | 39 | → Секој table се чува во 3 фајлови (.frm, .MYD, .MYI). |