mysql,这样的sql语句咋优化啊

SELECT
company,
sum(rating) as ratingTotals,
count(rating) as commentCounts,
FROM
comment
group by company
order by sum(rating) / count(rating) desc

----------
问题是,order by的时候,会不会又重新计算了一遍,效率不高,怎么优化一下?
目的是,以公司分组,按公司的平均评级排序.

SELECT
company,
avg(rating) as avgNumber,
count(rating) as totalNumber
FROM comment
group by company
order by avgNumber desc
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-04
均值不是可以用avg函数的么,搞这么复杂的追问

avg确实可以,非常感谢。

另外如何取得avg统计的个数呢?

比如此组里,有10条数据用于avg计算,这个10如何取得?

avg确实可以,非常感谢。

另外如何取得avg统计的个数呢?

比如此组里,有10条数据用于avg计算,这个10如何取得?

追答

假如你需要统计个数 那没什么好招只能count了。你的sql已经很简单了,效率不是函数执行引起的。大数据情况下,什么函数不加也很慢,实在要优化,只能加索引了。

第2个回答  2015-11-04
逗B天天有追答

今天特别多

sql语句查询时间过长怎么优化?
实现优化的方法主要在于改变SQL执行计划,以尽量减少IO次数和降低CPU运算。优化SQL语句,避免复杂多表Join、排序操作、使用"or"关键字、使用"union"等,以减少IO操作和CPU运算。此外,避免类型转换,如尽量使用DISTINCT代替GROUP BY,避免使用SELECT INTO语句。在表结构优化上,考虑到MySQL基于行存储,通过减少...

MySQL快速比较方法优化SQL语句取两者较大值mysql两者取大
这条语句将比较列a和b的大小,如果a>b为真,则返回a,否则返回b。二、优化SQL语句 在MySQL中,优化SQL语句可以提高查询效率。以下是几种常见的SQL优化技巧:1.使用索引 索引是MySQL中的一种数据结构,用于快速查找数据。对于经常被查询的列或用于JOIN操作的列,通常应该使用索引。例如,可以为列a和列...

Mysql的SQL优化指北
SQL优化主要依赖于数据库优化器,我们的目标是编写出能被优化器有效利用的SQL语句。以person_info表为例,其联合索引idx_name_birthday_phone_number按照(name, birthday, phone_number)的顺序排序,这意味着在查询时,会首先按name,再按birthday,最后按phone_number。优化建议包括:避免过度索引,因为索引...

mysql数据库怎么优化sql语句
1,slow_query_log 这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。2,long_query_time 当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。3,slow_query_log_file 记录日志的文件名。4,log_queries_not_using_indexes 这个参数设置为ON,可以捕获到所有未使用索引...

别被误导Mysql优化不仅仅是不等于操作mysql不等于优化
1. 索引优化 索引是提高Mysql查询性能的重要手段。通过将常用的查询条件或者排序字段添加索引,可以加速查询的速度。但过多的索引可能会导致性能下降。因此,需要根据实际情况选择怎样建立索引。在Mysql中,可以使用EXPLN命令来查看查询语句的执行计划,并根据执行计划来优化查询语句。例如,下面的命令可以查看某...

MySQL慢查询之慢 SQL 定位、日志分析与优化方案
以一个1.163s的慢SQL为例,通过慢查询日志分析可以帮助我们找出瓶颈。面对大量慢SQL,可以借助MySQL自带的mysqldumpslow工具进行自动化分析。优化SQL语句时,可以考虑以下策略:避免子查询,特别是在MySQL5.5及以前版本中;避免函数索引,使用IN代替OR;优化LIKE查询;限制读取数据的数量;确保数据类型一致;在...

解析MySQL优化的万能技巧mysql万能优化套路
MySQL支持多种类型的索引,如B-Tree索引、Hash索引、Fulltext索引等。其中,B-Tree索引是最常用的一种索引类型,它可以提高查询效率,同时还可以优化排序、分组和连接操作。如果MySQL表中的列没有使用索引,可以通过如下SQL语句进行优化:ALTER TABLE table_name ADD INDEX (column_name);2.查询缓存 查询...

怎么结合mysql的执行计划来优化sql
一,SQL查询优化:指,使用的语句是不是冗余的,就是有没有无用的。你可用用explain 你的语句来比较分板一番。比如:select * from wc where 1;与select * from wc二者的执行时间不一样的;二,SQL执行计划就是用于描述SQL引擎在执行一个sql语句时的所有步骤,通过执行计划,我们可以知道哪个表是...

MySQLSlow的作用与优化方法mysqlslow作用
针对这个查询语句,可以创建一个包含name和age两个列的复合索引,这样就可以大大减少查询所需的时间。2.优化SQL语句 MySQL_Slow可以帮助开发人员找到执行时间较长的SQL语句,但是优化工作最终还是要落实到SQL语句本身。对于执行时间较长的SQL语句,可以从以下几个方面进行优化:(1)避免使用SELECT * 语句,...

MySQL单语句优化策略解析mysql不等于多个语句
SQL语句的优化也是提高MySQL性能的重要手段,以下是一些常见的SQL语句优化策略:(1)避免使用SELECT \\*:在查询数据时,尽可能只查询需要的列,避免不必要的数据传输和计算。(2)避免使用子查询:尽可能使用JOIN和LEFT JOIN等关联操作,避免使用子查询。(3)优化WHERE子句:避免使用WHERE子句中的不等于(...

相似回答