SQL juzga si "existe", ¿sigue usando la operación de conteo?

De acuerdo con una determinada condición para consultar "Sí" y "No" de la tabla de la base de datos, solo hay dos estados, entonces, ¿por qué necesita seleccionar contar (*) al escribir SQL?

Ya sea un programador estrella nuevo o un programador veterano que ha estado en el campo de batalla durante muchos años, siempre cuentan.

La forma actual de escribir de la mayoría

Al revisar el código varias veces, se encontraron los siguientes fenómenos:

En el código comercial, debe consultar si hay registros basados ​​en una o más condiciones, independientemente de cuántos registros haya. SQL común y escritura de código son los siguientes

Escritura SQL:

SELECT count(*) FROM table WHERE a = 1 AND b = 2  

Escritura en Java:

int nums = xxDao.countXxxxByXxx(params);  
if ( nums > 0 ) {   
//当存在时,执行这里的代码  
}   
else {   
//当不存在时,执行这里的代码  
}

¿Se siente bien? No hay problema

Mejoramiento

La redacción recomendada es la siguiente:

Escritura SQL:

SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1  

Escritura en Java:

Integer exist = xxDao.existXxxxByXxx(params);  
if ( exist != NULL ) {  
  //当存在时,执行这里的代码  
} else {  
  //当不存在时,执行这里的代码  
}  
 

SQL ya no se usa count, sino que se usa en su lugar LIMIT 1, de modo que cuando la consulta de la base de datos encuentra uno, regresará y no continuará encontrando cuántos más quedan

Puede juzgar directamente si no está vacío en el código comercial

para resumir

Cuantos más elementos se encuentren de acuerdo con las condiciones de la consulta, más obvia será la mejora del rendimiento y, en algunos casos, se puede reducir la creación de índices conjuntos.

Fuente: https://urlify.cn/JjYBJn

Supongo que te gusta

Origin blog.csdn.net/u012660464/article/details/108805648
Recomendado
Clasificación