Answers.Body: <p>Actually, all the tables, but one use InnoDB storage engine. The one that uses myisam engine is table &quot;searchindex&quot;.</p>
  <p>When you check for index type:</p>
  <pre><code>mysql&gt; show index from searchindex where Index_type=&quot;FULLTEXT&quot; \G
  </code></pre>
  <p>you get that the &quot;searchindex&quot; table indeed uses FULLTEXT.</p>
  <p>I would say that Craft uses some specific fulltext searches specific to myisam engine, therefore not using innodb.</p>
  <p>You can change the engine of the &quot;searchindex&quot; table (and see what brakes) with:</p>
  <pre><code>mysql&gt; alter table searchindex engine=&quot;InnoDB&quot;;
  </code></pre>
  <p>and revert with:</p>
  <pre><code>alter table searchindex engine=&quot;MyISAM&quot;;
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-09-25T13:24:00.540Z
Answers.LastActivityDate: 2020-09-25T13:24:00.540Z
Answers.UserDisplayName: grom
Answers.Body: <p>Craft CMS 4.1 now creates the searchindex table as InnoDB by default, because the minimum MySQL version Craft CMS 4 supports will always ensure that full text searching support is available with InnoDB.</p>
  <p>Craft CMS 3 still creates this table as MyISAM because the minimum MySQL version supported, doesn't have full text searching support, so there is a possibility that full text searching may not be available for older MySQL versions with InnoDB. If however you are running a MySQL version with full text support using InnoDB, you can go ahead and run an ALTER TABLE command in your project to change it or run it through a migration, so there's a record of the change in your migrations table.</p>
  <p>There shouldn't be any major issues, there is still a unresolved MySQL bug with InnoDB and full text searching, which Craft CMS has a workaround for: <a href="https://github.com/craftcms/cms/commit/b39240a4b409b535cae7ea1acdf5880c0ef8cb2f" rel="nofollow noreferrer">https://github.com/craftcms/cms/commit/b39240a4b409b535cae7ea1acdf5880c0ef8cb2f</a> in it's own codebase, as the bug remains unresolved as per the bug tracker: <a href="https://bugs.mysql.com/bug.php?id=78485" rel="nofollow noreferrer">https://bugs.mysql.com/bug.php?id=78485</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-07-01T13:55:01.590Z
Answers.LastActivityDate: 2022-07-01T13:55:01.590Z
Answers.UserDisplayName: James White
Body: <p>What are the implications if I create all the Craft database tables on the InnoDB storage engine? Will there be any performance problem?</p>
  
Tags: <craft3><mysql>
Title: Using MySQL With just InnoDB storage engine
ThreadText: # Using MySQL With just InnoDB storage engine
  
  (Asked by: username_0 on 2020-09-25)
  
  What are the implications if I create all the Craft database tables on the InnoDB storage engine? Will there be any performance problem?
  
  **Tags:** craft3, mysql
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2020-09-25. Score: 1 | Accepted answer
  
  Actually, all the tables, but one use InnoDB storage engine. The one that uses myisam engine is table "searchindex".
  
  When you check for index type:
  
  ```
  mysql> show index from searchindex where Index_type="FULLTEXT" \G
  
  ```
  
  you get that the "searchindex" table indeed uses FULLTEXT.
  
  I would say that Craft uses some specific fulltext searches specific to myisam engine, therefore not using innodb.
  
  You can change the engine of the "searchindex" table (and see what brakes) with:
  
  ```
  mysql> alter table searchindex engine="InnoDB";
  
  ```
  
  and revert with:
  
  ```
  alter table searchindex engine="MyISAM";
  
  ```
  
  
  ---
  
  ### Answer by username_2 on 2022-07-01. Score: 1
  
  Craft CMS 4.1 now creates the searchindex table as InnoDB by default, because the minimum MySQL version Craft CMS 4 supports will always ensure that full text searching support is available with InnoDB.
  
  Craft CMS 3 still creates this table as MyISAM because the minimum MySQL version supported, doesn't have full text searching support, so there is a possibility that full text searching may not be available for older MySQL versions with InnoDB. If however you are running a MySQL version with full text support using InnoDB, you can go ahead and run an ALTER TABLE command in your project to change it or run it through a migration, so there's a record of the change in your migrations table.
  
  There shouldn't be any major issues, there is still a unresolved MySQL bug with InnoDB and full text searching, which Craft CMS has a workaround for: <https://github.com/craftcms/cms/commit/b39240a4b409b535cae7ea1acdf5880c0ef8cb2f> in it's own codebase, as the bug remains unresolved as per the bug tracker: <https://bugs.mysql.com/bug.php?id=78485>
  
  
  ---
  
  