Սկիզբ » Ուսումնական նյութեր » Տվյալների բազաներ » MyISAM֊ի և InnoDB֊ի տարբերությունը

MyISAM֊ի և InnoDB֊ի տարբերությունը

Որն է mysql-ում MyISAM և InnoDB տեսակի աղյուսակների տարբերությունը։

Հաճախակի այս հարցը առաջանում է սկսնակների մոտ, ու ցավոք որոշ դեպքերում նրանք չէն տիրապետում օտար լեզուների։ Բայց օտար լեզվի չիմացությունը չպիտի խոչընդոտ լինի։

Արդ ներկայացնում եմ mysql-ում MyISAM և InnoDB աղյուսակների համեմատական աղյուսակը։

Համեմատական աղյուսակ

Նկարագրություն MyISAM InnoDB
Ապահովում է արդյո՞ք տրանզակցիաներ Ոչ Այո
Արտաքին բանալիների ապահովում(foreign key) Ոչ Այո
Բլոկավորում Բլոկավորում է աղյուսակների մակարդակի վրա Բլոկավորում է տողերի մակարդակի վրա
Միաժամանակյա հարցումներ աղյուսակի տարբեր մասերին Դանդաղ Արագ
Խառը բեռնավորման ժամանակ (select,insert,update,delete) Դանդաղ Արագ
Insert գործողությունը Արագ Դանդաղ, քանի որ կան տրանզակցիաներ
Եթե գերակայում են Select հարցումները Արագ Դանդաղ
Deadlock Հնարավոր չէ Պատահում են
Լիատեքստ որոնման ապահովում Կա Չկա
Count(*) հարցումը Արագ է Դանդաղ է
mysqlhotcopy ֊ի ապահովում Կա Չկա
Աղյուսակները որպես ֆայեր Ամեն աղյուսակին մեկ ֆայլ Լռությամբ կարագավորումների դեպքում տվյալները պահպանվում են մեծ համատեղ օգտագործվող ֆայլերում
Աղյուսակների բինար պատճենում Հնարավոր է Հնարավոր չէ
Աղյուսակների չափը ՏԲ֊ում Ավելի փոքր է Ավելի մեծ է
Վարքը խափանումների ժամանակ Փչանում է ամբողջ աղյուսակը Վերականգնելի է լոգերից
Հարմար է լոգեր և նմանատիպ բաներ պահելու համար Հարմար է Անհարմար է

Եզրակացություններ

1․ MyISAM աղյուսակները իմաստ ունի օգտագործել երբ գերակայում է միայն մեկ տեսակի գործունեություն, ընթերցում կամ լոգավորում։

2․ InnoDB-ն իմաստ ունի օգտագործել մյուս բոլոր դեպքերում, հատկապես տվյալները ամբողջականության պահպանության նկատմամբ բարձր պահանջների դեպքում։

Ծանոթագրություններ

ՏԲ (DB) – Տվյալների Բազա (Data Base)

Տրանզակցիաներ (Transaction) – SQL օպերատորների բլոկ, որոնք կամ կատարվում են ամբողջությամբ, կամ ոչ մեկը չի կատարվում։ Տրանզակցիայի ընթացքում առաջացող սխալի դեպքում, տվյալների բազան վերադարձվում է իր մինչև տրանզակցիայի սկիզբը ունեցած վիճակին (Rollback)։ Տրանզակցիայի բարեհաջող կատարաման դեպքում կատարվում է փոփոխությունների հաստատում (commit)։

Արտաքին բանալիներ(forign keys) ֊ երկու աղյուսակների տվյալները որոշակի դաշտերով իրար կապելու այնպիսի ձև, որի ժամանակ մայրական դաշտում տվյալի փոփոխության դեպքում ավտոմատ կերպով կատարվում է որոշակի փոփոխություն նաև դուստր դաշտում։

Բլոկավորում ֊ տողերի մակարդակի վրա բլոկավորում․ եթե պրոցեսը փոխում է տվյալ դաշտի արժեքները, ապա արգելում է այլ պրոցեսներին այդ տողում փոփոխություններ կատարել, միևնույն ժամանակ թույլատրում է այլ տողերում փոփոխությունները։

DeadLock – Այնպիսի իրավիճակ, երբ երկու կամ ավելի պրոցեսներ անվերջ սպասում որևէ ռեսուրսի ազատմանը այլ ռեսուրսների կողմից, որոնք հենց իրենք էլ զբաղեցրել են։

mysqlhotcopy – Perl սցենար է, որը օգտագործում է “LOCK TABLES”, “FLUSH TABLES” SQL-հրամանները և “cp” կամ “scp” Unix հրամանները ՏԲ֊ի ռեզերվային պատճենի արագ ստեղծման համար։

Աղյուսակների բինար պատճենում ֊ երբ աղյուսակների ֆայլերը կարելի է տեղափոխել տարբեր ճարտարապետությամբ և տարբեր օպերացիոն համակարգերով համակարգիչների միջև առանց որևէ ձևափոխությունների։

Դբա Լավը 😉

MyISAM֊ի և InnoDB֊ի տարբերությունը, 10.0 out of 10 based on 3 ratings

Նշագրեր: , , ,

Բաժին: Տվյալների բազաներ

Կիսվել , տարածել , պահպանել

VN:F [1.9.20_1166]
Rating: 10.0/10 (3 votes cast)

Մեկնաբանեք

Կհաստատվեն միայն մեսրոպատառ հայերենով գրած մեկնաբանությունները

198