2、例如:SELECT * FROM t1 WHERE a=0 and (b=1 and c=1) or (b<=1 and c=0)的语句如何优化,除了用UNION,还有没有更好的方法? 创建索引 (a,b,c)
mysql proxy实现读写分离,这样是减少同一个数据库的并发访问。 单个大表进行分表,这个只不过是提高查询速度,减少锁的冲突。 具体哪种好,需要看你的实际应用是什么。 总体来说,使用 proxy,相当于添加了CPU速度会提高。
索引已加了!例如这样的语句: SELECT t1.id,t1.name,sum((t2.a+t2.b+t2.c)*t3.d) as total from t1 left join t2 on t1.id=t2.id group by t1.id order by t1.id desc 上面这个语句,在t2中,对t2的各个字段进行挺复杂的加减乘减,是不是不能在数据库上进行计算,还放在程序中呢?分别对t1.id,t2.id加了索引,t1有500条数据,t2有12万条数据 也用EXPLAIN进行分析,t1 type:ALL, t2 type:ref,查询时间0.7719s
创建索引 (a,b,c)
具体哪种好,需要看你的实际应用是什么。 总体来说,使用 proxy,相当于添加了CPU速度会提高。
SELECT t1.id,t1.name,sum((t2.a+t2.b+t2.c)*t3.d) as total from t1 left join t2 on t1.id=t2.id group by t1.id order by t1.id desc
上面这个语句,在t2中,对t2的各个字段进行挺复杂的加减乘减,是不是不能在数据库上进行计算,还放在程序中呢?分别对t1.id,t2.id加了索引,t1有500条数据,t2有12万条数据
也用EXPLAIN进行分析,t1 type:ALL, t2 type:ref,查询时间0.7719s