12
A
答えて
12
これらはどちらも互いに効率的です。機能はお互いにほぼ同じオーバーヘッドを持ちます。
しかし、これはどちらかよりも効率的である:関数が呼び出される必要はありませんので
(column_name is null
or column_name = 'test')
。
より一般的に遭遇するテストを行うと、パフォーマンスが向上することがあります。
このような疑問がある場合、相対的なパフォーマンスを検出する最も簡単で信頼性の高い方法は、それらを試してクエリのタイミングを比較することです。テストが公正なものになるように、実物大のデータセットを用意してください。
11
NULLIF
とIFNULL
の目的は同じではないため、パフォーマンスの比較は意味をなさない。
NULLIF
は、発現がnull
ある場合IFNULL
をtext
を返すために使用されるのに対し、発現は、特定の値を有する場合null
を返すために使用されます。
例:null
以来
SELECT IFNULL(field,'empty') from table1;
がユーザーを終了するにはあまり意味がありません。 null
以来
insert into table1 (field) values (nullif(field,'empty'));
は、データベースに特別な意味を持っています。
2
異なる目的で使用されているため、パフォーマンスの比較は意味をなさない。
select if(a,b,c); # a ? b : c # if a!=0 and a is not null then b else c
select ifnull(a,b); # a ? a : b # if a is not null then a else b
select nullif(a,b); # a=b ? null : a # if a=b then null else a
http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html
関連する問題
- 1. ハスケルの空リストをチェックする:(長さリスト== 0)または(リスト== [])がより効率的ですか?より効率的にこれらの二つの論理テストの</p> <ol> <li><code>length list == 0</code></li> <li><code>list == []</code></li> </ol> <p>:
- 2. Heredoc <<<または<<?
- 3. 春のアプリケーションコンテキスト - <code>main/src</code>、<code>main/resources</code>、<code>test/src</code>と<code>test/resources</code> - メインとテストフォルダ
- 4. スカラ:</p> <pre><code>val s = """<body> <p>This is a test</p> <p>This is a test 2</p> </body""" </code></pre> <p>ここでの問題はとき、次のとおりです、改行を交換して、タブ文字列
- 5. は</p> <pre><code>Test test = new Test(); String s = test.toString(); Test test1 = (Test)s; </code></pre> <p>任意の明確化がより参考になる、クラス名
- 6. Gitは<<<<<<< HEADをファイルに追加し続けます
- 7. ジャンゴテスト - 私は<code>/manage.py test --settings=myproj.settings.local</code></p> <p>を実行すると、テスト用データベース
- 8. Swift <<, ><, <=< and > = <
- 9. なぜ[:] = 1は[:] = '1'と根本的に異なるのですか? <code>a</code>が<code>['1']</code>ある最初のケースで</p> <pre><code>a = [] a[:] = '1' </code></pre><p>と</p> <pre><code>a = [] a[:] = 1 </code></pre><p>:
- 10. Findメソッドは、私はそれを変更したとき、私はこの</p> <pre><code>$test= test::find($id); return $test; </code></pre> <p>リターン<code>null</code>のようなコントローラを持っていますが、laravelコントローラ
- 11. は、メモリを割り当て、私は</p> <pre><code>int main(int argc, char **argv) { char *test = (char*) malloc(12*sizeof(char)); test = "testingonly"; free(test); } </code></pre> <p>作業isnt't理由を次のコードを思っていたC
- 12. MySQLの:私は<strong>MySQLの</strong>テーブルに列<strong><code>my_order</code></strong>と<strong><code>alt_order</code></strong>で<strong><code>example</code></strong>と呼ばれている列
- 13. ゼロ例えば迅速な例</p> <pre><code>NSString *test=nil; </code></pre><p>ためのObjective-Cで
- 14. ブロック構文<p>この</p> <pre><code>(p test) do 1 end </code></pre><p>としてブロックは、<code>p test</code>のない結果に渡され<code>test</code> 。そのため、<code>yield</code>はそのエラーを発生させずに返します。</p>
- 15. なぜ '<<<'フィルタリングはgdbのnullバイトで、 '<()'はしませんか?
- 16. cout << "привет";またはwcout << L "привет";
- 17. 普及している、または効率的な再帰的検索および置換アルゴリズムはありますか?アーティストアーティストをフィーチャーしたタイトル偉業など</strong></p> <p>それとも</p> <p><strong>- - タイトルフィート
- 18. <c:if> jsfのtest = ""
- 19. オブジェクトのプロパティ名が別のオブジェクトの値からjavascriptにありますか?だから、これは実際にある</p> <p><code>var test ='name';</code></p> <p><code>var obj[test] ='my name';</code></p> <p>:
- 20. iOSで新しいObjective-Cオブジェクトリテラルを有効にするにはどうすればよいですか?</p> <pre><code>NSDictionary *test = @{ @"key" : @"test value" }; NSString *value = test[@"key"]; NSLog(@"value is: %@", value); </code></pre> <p>それは警告なしでコンパイルし、期待通りに実行される:
- 21. <c:if test= >は常にtrueです
- 22. 代替は「<<<」魚
- 23. ドキュメントは<<< OUT
- 24. <<<
- 25. は、コマンドラインから</p> <pre><code>grails test-app PostIntegrationSpec </code></pre> <p>を発行する場合
- 26. CSS:私は、次のものがあり、CSSで</p> <pre><code><main> <section> <article></article> <aside></aside> </section> </main> </code></pre> <p>:フレックスボックスは、Firefox
- 27. Regex to match test <not ABC> test
- 28. 私は</p> <pre><code>page.content = <body><b>Title:</b> Test title</body> </code></pre> <p>のようなテキストを持っている美しいスープ
- 29. 私は以下のスクリプト</p> <pre><code>"test:server": "mocha test/server/ --compilers js:babel-core/register --require ./test/server/init_db.js --recursive", </code></pre> <p><code>init_db</code>からモカ・テストを実行している
- 30. 1 << 40