Индекс работает в Oracle - PullRequest
       5

Индекс работает в Oracle

0 голосов
/ 27 октября 2011
String s1 = "create table " +tableName+
        "(id number NOT NULL PRIMARY KEY, " +
        "url varchar(1000) NOT NULL, " +
        "urlHash varchar(255) NOT NULL, " +
        "contentHash varchar(255), " +
        "modDate varchar(30), " +
        "contentLocation varchar(100), " +
        "status integer, " +
        "lastCrawlDate varchar(30)) ";

    String s3 = "create sequence " +sequenceName+ " start with 1 increment by 1 nomaxvalue";

        stmt=conn.createStatement();
        stmt.executeUpdate(s1);
        stmt.executeUpdate(s3);

    ps = conn.prepareStatement (
              "INSERT INTO testing (id, url, urlHash, contentHash, modDate, contentLocation, status, lastCrawlDate) VALUES(test_seq.nextval,?,?,?,?,?,?,?)");


              ps.setString (1, url);
              ps.setString (2, urlHash);
              ps.setString (3, contentHash);
              ps.setString (4, modDate);
              ps.setString (5, contentLocation);
              ps.setLong (6, status);
              ps.setString (7, lastCrawlDate);

И мой запрос на выборку будет вращаться вокруг urlHash и modDate. Так что, если я создам индекс по этим столбцам.

CREATE INDEX hash_date_idx ON tableName (urlHash asc, modDate asc);

И затем, если я запустил запрос на выборку на основе этих двух столбцов или одного столбца, что произойдет в фоновом режиме. Может кто-нибудь объяснить, что, как я новичок в мире баз данных оракула. И какой индекс вообще лучший в этом случае. И на каком основании мы должны использовать один.

Select * from tabelName where urlHash like '%asdreefjhsawofjkwjfkwqdskdjksdwq%';

1 Ответ

2 голосов
/ 27 октября 2011

Подстановочный знак с оператором like заставит оракула игнорировать индекс на urlHash.

Для лучшей производительности вы можете выполнить одно из следующих действий:

  1. использовать индексные подсказки с выбором

    select /*+index(tableName,hash_date_idx)*/ * from tabelName ...
    
  2. использовать полнотекстовое индексирование КОНТЕКСТ для столбца urlHash.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...