数据库: mysql
问题1
要求:按照a字段排序,相同的时候按照b字段排序,返回前100行记录
限制:数据量非常大,可能有几十万条记录,需要速度很快
问题2
要求:按照a+b字段的和排序,返回前100行记录
限制:数据量非常大,可能有几十万条记录,需要速度很快
问题1
要求:按照a字段排序,相同的时候按照b字段排序,返回前100行记录
限制:数据量非常大,可能有几十万条记录,需要速度很快
问题2
要求:按照a+b字段的和排序,返回前100行记录
限制:数据量非常大,可能有几十万条记录,需要速度很快
建立组合索引(a,b);
select * from tb order by a,b limit 100;问题2:
建立函数索引(a+b)
select * from tb order by (a+b) limit 100;几十万数据小case啊,加了索引都能满足你的要求。当你表达到了几千万上亿记录的时候,再考虑别的优化方式。
我平时不涉及到sql的 所以担心写错 最好有个例子还有如果我这个表(大概30个字段)建立了5个索引 会不会对效率有影响? a+b这样的索引该怎么建立?
效率能提升多少呢 create index xxx ...
这个XXX只是一个定义的作用 在其他的语句中都不会使用和修改他是吗
和在创建表的时候声明 INDEX[indexName] (username(length)) 有什么却别?
1:select * from tb order by a,b limit 100;
在a,b上面建索引。
2:增加一个C字段,内容等于a+b, 然后在C上建索引。MYSQL不支持函数索引。索引的名称没有实际意义,只有在创建和删除的时候有用,或者在指定使用哪个索引的时候有用。创建表的时候建索引和后面ALTER TABLE建索引没有区别。