Is it true that the MyISAM engine is preferable to InnoDB when we create clustered storage? Why if so?

I heard this today during an interview for a Java developer. I had to list some of the advantages of MyISAM over InnoDB and why it is still widely used. And they expected to hear from me the answer as the name of this question.

As I understand from my own answer: MyISAM does not have foreign keys, and the database can be easily clustered (for example, one table per server). But why can't we just create InnoDB tables without foreign keys? This explanation sounds strange to me ..

+3
source share
5 answers

. , , .

InnoDB:

  • FK
  • .
  • - , ..

MyISAM:

  • , InnoDB , :
    • ( , InnoDB)
  • / ( , , )
  • ( ), .

, InnoDB , , , .

, , .. , , MyISAM.

+8

MyISAM InnoDB

  • FULLTEXT

  • ...

  • , .

(, , MyISAM , InnoDB, , ACID. - MyISAM - , InnoDB.)

+4

, . MyISAM , InnoDB .

, MyISAM ( , ) MySQL .

InnoDB .

, , , . - , InnoDB MyISAM MyISAM .

+1

, InnoDB , : . , MyISAM , - , , .

There are also some differences in blocking and access. InnoDB supports row-level locking, while MyISAM only supports table-level locking. Depending on the queries you execute (SELECTS versus INSERTS / UPDATES), this can have a noticeable effect on performance.

0
source

You really need to read the Mysql Peformance blog .

0
source

Source: https://habr.com/ru/post/1721447/


All Articles