1/ISAM
ISAM е добре дефиниран и изпитан във времето подход за управление на таблици с данни, който е проектиран така, че базата данни се заявява много по-често, отколкото да се обновява. В резултат на това ISAM извършва четения бързо и не заема много памет и ресурси за съхранение. Двата основни недостатъка на ISAM са, че не поддържа обработка на транзакции и не е устойчив на грешки: ако твърдият диск се срине, файловете с данни не могат да бъдат възстановени. Ако използвате ISAM за критично важни приложения, винаги трябва да архивирате всички данни в реално време, а MySQL може да поддържа такива приложения за архивиране благодарение на функцията си за репликация.
2/InnoDB
Той предоставя функция за контрол на транзакциите, която гарантира, че набор от команди се изпълнява успешно, или когато възникне грешка в командите, резултатът от всички команди се връща назад; може да се предположи, че способността за контрол на транзакциите е много важна в електронното банкиране. Поддръжка на функции за COMMIT, ROLLBACK и други транзакционни функции. Последната версия на MySQL вече планира да премахне поддръжката на BDB в полза на InnoDB.
MyIASM е нова версия на IASM таблици със следните разширения: Преносимост на двоично ниво. Индекс на колоната NULL. Има по-малко фрагменти за променливи редове, отколкото за ISAM таблици. Поддръжка за големи файлове. По-добра индексна компресия. По-добре ли е да има статистическо разпределение? По-добра и по-бърза auto_increment обработка.
Ето някои детайли и специфични разлики в реализацията:
1. InnoDB не поддържа индекси от тип FULLTEXT. 2. Таблиците не се запазват в InnoDB специфични редове, тоест изпълняване на select count(*) от таблица, InnoDB сканира цялата таблица, за да изчисли колко редове има, но MyISAM просто чете запазените редове. Обърнете внимание, че когато операторът count(*) съдържа където при условие, операцията и на двете таблици е една и съща. 3. За полета от AUTO_INCREMENT тип индексът само с това поле трябва да бъде включен в InnoDB, но в таблицата MyISAM е възможно да се създаде федеративен индекс с други полета. 4.ИЗТРИЙ FROM таблица, InnoDB не пресъздава таблицата, а я изтрива ред по ред. 5.ТАБЛИЦА ЗА ЗАРЕЖДАНЕ ОТ Операцията MASTER не работи за InnoDB, решението е първо да се промени таблицата на InnoDB в таблица MyISAM, да се импортират данните и след това да се превърне в таблицата на InnoDB, но тя не е приложима за таблици, които използват допълнителни функции на InnoDB (като външни ключове).
Освен това, заключването на реда в таблица InnoDB не е абсолютно, ако MySQL не може да определи обхвата, който да се сканира при изпълнение на SQL оператор, таблицата на InnoDB ще заключи цялата таблица, например update Таблица номер = 1, където името е като "a%"
Нито една таблица не е всемогъща, само чрез избор на подходящия тип таблица за бизнес типа можем да максимизираме предимствата в производителността на MySQL.
MySQL Когато Администраторът създава база данни, таблицата по подразбиране се поставя към типа InnoDB.
InnoDB, MyISAM Каква е разликата между двата типа: типът MyISAM не поддържа усъвършенствана обработка като обработка на транзакции, докато типът InnoDB поддържа. Таблиците от типа MyISAM акцентират върху производителността, която работи с няколко степени по-бързо от типа InnoDB, но не осигурява транзакционна поддръжка, докато InnoDB предоставя усъвършенствани функции на база данни като транзакционна поддръжка, външни ключове и др.
Файловете с двоични данни тип MyISAM могат да се мигрират между различни операционни системи. Тоест, може да се копира директно от Windows на Linux система.
Променете типа на двигателя в таблицата:
АЛТЪР TABLE TABLE TABLE ENGINE = MyISAM ;
MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed Метод на последователен достъп Това е стандартният метод за съхранение на записи и файлове. В сравнение с други системи за съхранение, MyISAM разполага с повечето инструменти за проверка и ремонт на таблици. MyISAM таблиците могат да се компресират и поддържат пълнотекстово търсене. Те не са транзакционно сигурни и не поддържат външни ключове. Ако нещо се върне назад, това ще причини непълно връщане назад и не е атомно. Ако се извърши голям брой екзекуции TheSELECT, MyISAM е по-добрият избор.
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
За типовете InnoDB, които поддържат неща, основната причина за това да влияе на скоростта е, че настройката AUTOCOMMIT по подразбиране е включена и програмата не извиква изрично BEGIN Започнете транзакция, което води до автоматично потвърждение за всяко вмъкване, което сериозно влияе на скоростта. Можеш да извикаш start преди да е изпълнен SQL и няколко SQL образуват едно нещо (дори ако се активира автоматично потвърдяване може да се включи), което значително подобрява производителността.
1. Прегледайте информацията за таблицата, включително типа използван енджин, кодиране на символи, структура на таблицата и др
Използвай тази команда
mysql> покажи създаване на таблица T1; --t1 е името на таблицата
2. Следната команда може да се изпълни за превключване на нетранзакционни таблици в транзакции (данните не се губят), inodb таблиците са по-сигурни от myisam таблиците: Промяна на таблица T1 type=innodb; --t1 е името на таблицата
3. Innodb таблицата не може да се table_name с командата repair table и myisamchk -r Но можеш да използваш контролна таблица t1 и mysqlcheck [OPTIONS] база данни [таблици]
4. Следните параметри са добавени в командния ред за стартиране на mySQL базата данни, за да направят всички новоиздадени mysql таблици с данни по подразбиране да използват транзакции ( Това влияе само на изявлението create. ) --default-table-type=InnoDB
5. Временната промяна на типа на стандартната таблица може да се извърши от: set table_type=InnoDB;
MyISAM Предимства: бърза скорост, по-малко заето място на диска; Използването на диск на база данни или таблица може да се намери или чрез проверка на размера на съответния файл (папка) от операционната система, или чрез използване на SQL изявлението SHOW TABLE STATUS Минуси: Липса на механизъм за целостта на данните, т.е. няма поддръжка на транзакции и външни ключове
InnoDB Предимства: Поддръжка на транзакции и външни ключове, както и пълен механизъм за целостта на данните. Можете да използвате SHOW TABLE STATUS, за да проверите заета на диска в библиотека или таблица Недостатъци: ултра ниска скорост, голямо заето дисково пространство; Всички библиотеки се съхраняват в един (обикновено) или няколко файла, а операционната система не може да определи колко място има една библиотека или таблица
BDB Предимства: Поддръжка на транзакции, не поддържа външни ключове, защото въз основа на поддръжка на транзакции външни ключове могат да бъдат реализирани косвено на клиентската страна на базата данни (която може да е сървърната страна на крайния клиент, като PHP), така че целостта на данните все още е гарантирана; Недостатъци: ниска скорост, висока употреба на диска; Не можете да правите заявка за заета на пространство в база данни или таблица чрез SHOW TABLE STATUS. Операционната система може да разбере размера на съответната папка на библиотеката или съответния файл на таблицата, но тъй като BDB таблицата винаги трябва да генерира лог файл, а реалното запълване на диска трябва да включва лог файла, размерът на библиотека или таблица винаги е по-малък от действителното пространство, заето от операционната система.
|