I'm using mysql and have a table with more than 150k rows with 8 columns. 3 of those columns are of type 'text'. I wanted to know what is the best method in searching for a particular string from this table.

Currently I'm searching by:

Code:
$sql = "SELECT * FROM $tbl_name ORDER BY id";
.
.
.
while($data = mysql_fetch_array($result))
.
.
if(preg_match('/$searchparam/i',$data['search']))
Using php to access the database, and using time(), it takes more than 5 seconds to return results. How can I optimize this?