特定の条件に従って、データベーステーブルから「
はい」と「いいえ」をクエリし、状態が2つしかないので、SQLを書き込むときにcount(*)を選択する必要があるのはなぜですか?新しいスタープログラマーであるか、すばらしいですか長年戦場にいるプログラマー、ラオバイは同じ数を持っています
現在、ほとんどの人の書き込み方法
はコードを繰り返しレビューし、現象をそのまま発見しました。ビジネスコードでは、1つ以上の条件に基づいてレコードがあるかどうかを照会する必要があり、レコードの数は気にしません。一般的なSQLとコードの記述は次のとおりです
##### SQL写法:
SELECT count(*) FROM table WHERE a = 1 AND b = 2
##### Java写法:
int nums = xxDao.countXxxxByXxx(params);
if ( nums > 0 ) {
//当存在时,执行这里的代码
} else {
//当不存在时,执行这里的代码
}
大丈夫ですか?
ソリューションを最適化しても問題はありません。
推奨される書き込み方法は次のとおりです。
##### SQL写法:
SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1
##### Java写法:
Integer exist = xxDao.existXxxxByXxx(params);
if ( exist != NULL ) {
//当存在时,执行这里的代码
} else {
//当不存在时,执行这里的代码
}
SQLはcountを使用しなくなりましたが、代わりにLIMIT 1を使用します。これにより、データベースクエリが1に遭遇すると、それが返されます。残りの数を探し続けるのではなく、ビジネスコードで空でないかどうかを判断してください。
まとめ
クエリの条件に従って見つかったアイテムの数が多いほど、パフォーマンスが向上し、場合によっては、結合インデックスの作成を減らすことができます。
良い記事をお勧めします:
PythonとJavaのどちらが自動テストに適していますか?
Python + Selenium自動テストを10分でプレイして、すぐに始めましょう!
10年間のソフトウェアテストエンジニアの認識-まだ混乱している友達へ
最後に:エディターをフォローして、300ページのPDFドキュメントでPython自動テストエンジニアのコア知識の概要を受け取ることを歓迎します!ソフトウェアテスト技術交換グループ:(313782132)これらの資料の内容は、インタビュアーが面接中に尋ねる必要があるすべての知識ポイントです。この章には、基本的な知識、Linuxの基本、シェル、インターネットプログラムの原則、Mysqlを含む多くの知識ポイントが含まれますデータベース、パッケージキャプチャツールのトピック、インターフェイステストツール、高度なテスト-Pythonプログラミング、Web自動化テスト、APP自動化テスト、インターフェイス自動化テスト、高度な継続的統合テスト、テストアーキテクチャ開発テストフレームワーク、パフォーマンステスト、セキュリティテストなど。