Is it a good idea to use CodeIgniters Active Record library to manipulate MySQL databases or should I just use SQL? 
I'm starting to get to grips with CodeIgniter and came across it's support for the *Active Record* pattern. 

I like the fact that it generates the SQL code for you so essentially you can retrieve, update and insert data in to a database without tying your application to a specific database engine.

It makes simple queries very simple but my concern is that it makes complex queries more complex if not impossible (e.g. if need for engine specific functions).

**My Questions**

What is your of this pattern especially regarding CodeIgniters implementation?

Are there any speed issues with wrapping the database in another layer?

Does it (logic) become messy when trying to build very complex queries?

Do the advantages out way the disadvantages?


Is it a good idea to use CodeIgniters Active Record library to manipulate MySQL databases or should I just use SQL? 
===

I'm starting to get to grips with CodeIgniter and came across it's support for the *Active Record* pattern. 

I like the fact that it generates the SQL code for you so essentially you can retrieve, update and insert data in to a database without tying your application to a specific database engine.

It makes simple queries very simple but my concern is that it makes complex queries more complex if not impossible (e.g. if need for engine specific functions).

**My Questions**

What is your of this pattern especially regarding CodeIgniters implementation?

Are there any speed issues with wrapping the database in another layer?

Does it (logic) become messy when trying to build very complex queries?

Do the advantages out way the disadvantages?

