MySql查询加快了索引查询之间或多个索引查询之间的混淆

MySql查询加快了索引查询之间或多个索引查询之间的混淆,mysql,indexing,comparison,Mysql,Indexing,Comparison,我遇到了一种情况,我必须从表中选择一些行 该表大致如下 id Name Age 0011 name1 45 0012 name2 67 . . . . 0020 name10 100 . .

我遇到了一种情况,我必须从表中选择一些行

该表大致如下

        id           Name          Age

        0011         name1          45
        0012         name2          67
        .
        . 
        .
        .
        0020         name10         100
        .
        .
        .
        .


         // id is a primary key varchar(4).......
         // name is varchar.....
         // age is int.......
现在我需要的是得到像
0011-0020
0020-0030
这样的范围内的值。。。。。 我可以生成这个paricular范围的开始和结束,我希望您不要去想

但我怀疑的是

          Should I execute 10 SELECT queries based on the index values ?
例如:-

           for(i=0;i<10;i++)
           {
                    //SQL Query to SELECT row WHERE id = '0011' LIMIT 0,1 
                    // next time it id to select would be '0012'
            }
哪一个更快


我感到困惑,因为在第一种情况下,一次只选择一行,并且在每个查询中没有太多操作(其中10次请求是反派),在第二种情况下,只使用一个查询,但我相信,使用比较运算符在varchar主键上提供了开销

真正的成本是解析和执行多个查询,而不是获取比现在需要或可能需要的更多的数据

如果你看起来像是在寻呼,就像一次得到十个一样,你应该选择一个中间值,一次将页面填满


有时,查询优化程序可能会更好地使用
=Start和从数据库中获取数据的单个查询比使用for循环的其他查询更快,因为每个查询都有各自的执行时间,现在取决于您选择了哪种方式

您可以使用sql查询返回选择表的结果表中的计数(*),例如:1000 并获得页数$pages=ceil(1000/10)


用于(i元=0 ;$i@akp分页需要
between
limit
。@Ravinder,所以我想你选择使用limit constraint使用第二个条件…@akp Yes。使用
between
选择某个范围内的记录,并使用
limit
进行分页。@akp.Yep分页是一个标准,它有多复杂be取决于您的数据(例如,您是否可以在其前面插入),如果在页面上删除一行,将在下一页跳过记录等。但这都是很好理解的逻辑。请看,我必须得到10行。但我遇到的困惑是,如果我使用比较运算符(如
>=),这些运算符不负责较慢的@akpi,这就像从有一些先决条件不会是一项开销……对不起……如果我在这个问题上很愚蠢……因为它们都很快实现,也许你应该这样做,并对它们进行基准测试,以获得指示?
           Should I include a single Query to SELECT ROWS using AND, OR , BETWEEN..etc..with limit 10..???
for ($i=0;$i<=$pages:$i++) {
$start=10*$i;
$sql="SELECT MIN(id), MAX(id) FROM TABLE WHERE LIMIT ".$start.",10";
}