zoukankan      html  css  js  c++  java
  • Index is slowing down the selecting actions

    Description the problem:
    Table size 30G, Ram size 16G
    mysql> select * from program_access_log where program_id between 1 and 4000;
    very slow
    Try to select the top 500,000 records:
    mysql> select * from program_access_log where id between 1 and 500000 and program_id between 1 and 4000;
    still very slow
    Analysis:
    MySQL cann't put this 30G table into Ram, it will read them from disk:
    mysql> select * from program_access_log where id between 1 and 500000 and program_id between 1 and 4000;
    MySQL will select the program_id between 1 and 4000 out coz it's smaller then try to find id between 1 and 500000, however the id column didn't store as sorted, so MySQL will read them from disk.
    Solutions:
    1. Partition: split program_id into different partitions
    2. Split tables: split table into smaller tables
    3. select * from program_access_log where id between 1 and 500000 and program_id between 1 and 15000000;
  • 相关阅读:
    文档API
    vi编辑器常用方法
    storm实战入门一
    redis教程
    为redis分配一个新的端口
    Lucene分页查询
    Lucene搜索方式大合集
    HBase Scan类用法
    java.util.Queue用法
    Makefile中预定义变量
  • 原文地址:https://www.cnblogs.com/buro79xxd/p/1682563.html
Copyright © 2011-2022 走看看