单表多字段组合查询在大数据量时如何保证效率?
举例来说:
有表table,其中有column1,column2....column10这么十个字段
页面上有相对应的有这么十个搜索条件
也就是说页面上可以点选任何几个条件进行搜索
如
select * from table where column1 = ? and column2 = ?
或者
select * from talbe where column2 = ? and column 5 = ? and column10 = ?
假设该表有100万条记录,那么该如何给这张表做索引呢?
------解决方案--------------------
多字段索引是必须的。具体要看实际表中字段数据量的检索情况。
索引设计的原则 where后条件都要加索引,但这要看实际表结构的情况。
------解决方案--------------------自己可以建个100万的表测试一下不就知道了吗?都加索引和加入某个字段索引的情况比较。
------解决方案--------------------没什么好办法,先为每个字段做个单独的索引,然后看一下数据分布情况再决定要创建哪些复合索引。