/ / Calcule a soma do servidor MySQL ou do aplicativo - mysql, sql

Calcule a soma do servidor MySQL ou do aplicativo - mysql, sql

Eu tenho uma tabela MySQL que tem duas colunas: ID e contagem. Tem um índice no campo ID.

Agora, se eu tiver que obter a soma de todas as contagens entre dois IDs, posso escrever uma consulta como:

Select SUM(count) from table where id between x and y

ou eu posso pegar

select count from table where id between x and y

E, em seguida, percorra o resultado e calcule a soma da contagem no código do meu aplicativo

Qual deles é melhor, considerando que a velocidade é a coisa essencial aqui. A indexação na contagem ajuda? Ou posso escrever um SQL diferente?

A indexação na coluna de contagem ajudaria de alguma forma?

Tenho cerca de 10000 solicitações por segundo chegando e estou usando um balanceador de carga e 5 servidores para isso.

Respostas:

1 para resposta № 1

O segundo é o correto. Não há necessidade de somar uma contagem, pois a contagem retorna como um único valor. Ela só precisa ser executada uma vez.

A menos que você tenha uma coluna chamada count, em que você deseja somar todos os valores ...

EDITAR Porque você está dizendo que tem uma coluna chamada Count, você usaria a primeira consulta:

Select SUM(count) from table where id between x and y

0 para resposta № 2

Use a abordagem 1 como você salvaria na busca de dados do MySQL e iterar sobre ela.

O tempo gasto pelo MySQL para executar qualquer uma das suas consultas seria quase o mesmo, mas a segunda abordagem exigiria um loop através dos resultados e somando-os; sobrecarga desnecessária.