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