账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Oracle:多个查询条件时如何添加索引
    49
    0

    现有表Student包含ID、Name、Gender、Birthday字段(其中ID为主键)

    查询Student时可分别根据这四个条件任意组合

    当数据量很大时查询会很慢,该如何创建索引呢?

    需要为Name、Gender、Birthday字段也分别创建索引吗?

    或者我该看下什么文章来帮助解决这个问题呢?谢谢。


    1、数据量超过2000W
    2、查询一次大约需要20秒
    3、条件任意组合,这里仅以NAME、GENDER作为条件,每页10条

    SELECT * FROM (SELECT ROWNUM RN, ID, NAME, GENDER, BIRTHDAY FROM (SELECT NUM FROM STUDENT WHERE NAME='小明' AND GENDER='01') WHERE ROWNUM <= 20) WHERE RN >= 10;

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 尐の潴猪 普通会员 1楼

      在Oracle中,你可以使用WHERE子句和多个查询条件来创建索引。以下是一个简单的示例:

      假设我们有一个表orders,它包含以下字段:order_id, customer_id, product_id, 和 quantity

      我们可以使用以下SQL查询来创建一个索引:

      sql CREATE INDEX idx_orders_customer_id ON orders (customer_id);

      在这个查询中,idx_orders_customer_id是一个索引,它在orders表中的customer_id字段上建立。这意味着,当我们查询orders表时,Oracle会使用索引来更快地找到我们想要的数据。

      然而,这只是一个基本的例子。你可以根据你的需求创建更复杂的索引。例如,如果你有一个包含用户ID和订单ID的表,你可以创建一个索引,以帮助查询特定用户在特定时间内的订单数量。

      要添加多个查询条件到索引,你可以使用WHERE子句。例如,假设你有一个包含订单ID、客户ID和产品ID的表,你可以创建一个索引,以帮助查询特定订单的所有客户和产品:

      sql CREATE INDEX idx_orders_product_id ON orders (product_id, customer_id);

      在这个查询中,idx_orders_product_id是一个索引,它在orders表中的product_idcustomer_id字段上建立。这意味着,当我们查询orders表时,Oracle会使用索引来更快地找到我们想要的数据。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部