In one of my MySQL tables, I have following columns:
Skills varchar(80)
Industry varchar(40)
Address varchar(100)
Skills might include text like: C/C++, MS Office, Linux etc. Industry might include text like: Finance, IT, etc. Address contains complete postal address along with city name. There is no separate city column.
On my web page I have Search boxes where in user can type keywords for each of the columns. I use SQL query as given below:
Select studentname where skills like '%...%';
I want to improve the search results as well as performance. For example, the user might have entered a skill like Linex instead of Linux. So, my search should return the approx. match.
Please let me know how I can make search more accurate and increase performance. At present, I have defined index on skills
, address
and industry
columns. But the performance is not quite well.
The table engine is InnoDB.
edit
The problem is that we receive pre-filled MS Excel sheets from various institutions. Our .NET application reads the column values of the Excel sheet and stores it in the remote database. For splitting tables, we need change in our application.