MDF is the main database files - It's a SQL Data files where all the data in the database objects are stored in. (like tables, stored procedures, views, triggers etc are stored in the mdf file of sql server). This is the reason whey we use .MDF file to attache the database. Once we attach the .mdf we were able to see all the data exist in that respective database.
LDF is the log files - The size of the log file(ldf) is determined my the logging level you have set up on the database. Simple, full, and buld loged are the options. Simple being the least, and full being the most. The log (if in full) will alow you to re-apply transactions to the databse incase of a failure. If your looking for some performance improvement, there are a lot of things that can be done.
Just to focus on the files you could more the location of the LDF file to a separate physical drive. This will increate performance because writing to the log and writing to the mdf files wont compete for each other for throughput tot he drive.
NDF are secondary databse files (Same as mdf, but you can only have 1 Main database file).
You can also create a NDF file for the databese, and change some of the tables to be stored on this NDF. This file also could be stored on a separate physical drive. Some advantages to this are:
Tables that are written to most frequently are stored in one file, and tables that are relatively static are in another. Having to smaller file to write to for transactions will help with throughput.