sql >> データベース >  >> RDS >> Mysql

MySQL LIKE vs LOCATE

    2015年4月20日追加:ハリーの回答 もお読みください 以下

    最初のものですが、わずかです。主な理由は、余分な> 0を実行する必要がないためです。 比較。

    mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar'));
    +---------------------------------------------+
    | BENCHMARK(100000000,LOCATE('foo','foobar')) |
    +---------------------------------------------+
    |                                           0 |
    +---------------------------------------------+
    1 row in set (3.24 sec)
    
    mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar') > 0);
    +-------------------------------------------------+
    | BENCHMARK(100000000,LOCATE('foo','foobar') > 0) |
    +-------------------------------------------------+
    |                                               0 |
    +-------------------------------------------------+
    1 row in set (4.63 sec)
    
    
    mysql> SELECT BENCHMARK(100000000,'foobar' LIKE '%foo%');
    +--------------------------------------------+
    | BENCHMARK(100000000,'foobar' LIKE '%foo%') |
    +--------------------------------------------+
    |                                          0 |
    +--------------------------------------------+
    1 row in set (4.28 sec)
    
    
    mysql> SELECT @@version;
    +----------------------+
    | @@version            |
    +----------------------+
    | 5.1.36-community-log |
    +----------------------+
    1 row in set (0.01 sec)
    


    1. 別のテーブルにIDが存在しないすべての行を削除します

    2. ORACLESQLlistagg関数

    3. AWSAuroraインスタンスの書き込みパフォーマンスを最適化する

    4. DMV(動的管理ビュー)とDMF(動的管理機能)の使用| SQLServerのパフォーマンスのトラブルシューティング-4