基础问题:关于SQL查询,应该把哪个字段做建索引。(在线问,看到答案马上给分)
举个简单的例子:
select * from table1 where a=1 and b=1 and c=1 ORDER BY d DESC
一共有三个字段a,b,c做为条件,一个字段d做为排序字段。
这时候,为了使这个查询语句执行效率高,我们应该怎么对table表建索引?
怎么建聚触索引?怎么建组合索引?
1.只把a字段建聚触?
2.把d字段建聚触,再把a,b,c建一个组合索引?
假如table表不只有四个字段,而是有a~z一共26个字段,以后还会出现其它查询条件:
select * from table1 where b=1 and a=1 (不排序)
select * from table1 where x=1 and y=1 and z=1 ORDER BY f DESC
我们又应该如何修改索引,如何加新索引?
难道每新增一个查询条件,就要把条件中所出现的所有字段建一个组合索引?
索引建立过多会有什么负面影响,比如插入慢,其它索引查询速度变慢?