Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

When i create a database and some tables in MySQL Server, it makes some data files in Windows SystemData directory in C:\ProgramData\MySQL\MySQL Server 5.5\data\mydb\.

Each table has three files with these suffixes:

TableName.frm
TableName.MYD 
TableName.MYI

I don't know what those exactly are.

Please explain to me what those are and what is usages?

Thanks in advance.

share|improve this question
add comment

2 Answers

up vote 2 down vote accepted

Those three files represent one MyISAM table

For the MyISAM table, mydb.TableName, here is what they are

  • TableName.frm : Table format file (all Storage Engines have this one)
  • TableName.MYD : MyISAM data for the table
  • TableName.MYI : MyISAM Indexes for the Table

Click to read MySQL Documentation for MyISAM Storage Engine. In part, it says:

Each MyISAM table is stored on disk in three files. The files have names that begin with the table name and have an extension to indicate the file type. An .frm file stores the table format. The data file has an .MYD (MYData) extension. The index file has an .MYI (MYIndex) extension.

share|improve this answer
    
Thank you. Can we use these MyISAM files as embedded database ? –  Hamed Kamrava Jul 5 '13 at 21:39
    
Yes, you can. In fact, make sure the Embedded MySQL server has --skip-innodb to strip the server down to using only MyISAM tables. –  RolandoMySQLDBA Jul 5 '13 at 21:40
    
Thank you so much. I can't give you upvote. Excuse me :) –  Hamed Kamrava Jul 5 '13 at 21:51
    
No problem. When your rep reaches 15, you can. Until then, have a good day. –  RolandoMySQLDBA Jul 5 '13 at 21:52
add comment

MyISAM is the historical storage engine of the MySQL server on the hard disk, a MyISAM table is represented by three files:

table_name.frm which contains the structure of the table

table_name.MYD containing data.

table_name.MYI containing the index

Source : MySQL 5.6 Administartion et optimisation Edition ENI

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.