How do the miners check that I have enough Bitcoins. I cannot believe that they will walk through the huge and always growing blockchain established from 2009 to check each Transaction I made to calculate my balance ?
Bitcoin uses a thing called the Unspent Transaction Output Set (UTXO set), not accounts or balances. A transaction will consume UTXOs as inputs and create UTXOs as outputs. When a node receives a block (either during initial sync or normal relay), it will update its own internal database which contains the UTXO set. In this update, it removes the UTXOs that have been spent and adds the UTXOs that were created. Because it does this for every block, if a node is fully synced, it should know what all of the UTXOs are and have them stored in the database.
When a node receives your transaction, it will look up the UTXOs that your transaction spends in its database. If they don't exist, then it discards your transaction as invalid. It does not need to traverse the blockchain; the data it needs have been pulled out and put into another place where it can be easily looked up.
Once you understand how databases work, it's easier to believe. Besides, it's only the UTXO's (ie Unspent Transaction Outputs) that are needed to calculate your balance.
Bitcoin clients load the blockchain data into an indexed database to allow very quick checks of the data.
More details here: https://en.bitcoin.it/wiki/Bitcoin_Core_0.11_(ch_2):_Data_Storage