1,尽量不要用 * ,而用相应的字段代替,这是一个好习惯2,按照 ip1,ip2 的顺序加上复合索引.

解决方案 »

  1.   

    从他的语句看,应该分别给ip1和ip2加索引,不用复合索引
      

  2.   

    select * from ip_address where $ip BETWEEN ip1 AND ip2 将ip1设为主键,在ip2上建索引可加快查询速度
      

  3.   

    有没有好的检测sql语句速度的软件。
      

  4.   

    select * from ip_address where $ip BETWEEN ip1 AND ip2 将ip1设为主键,在ip2上建索引可加快查询速度
    ------------------------------------------------------------
    这样的语句好奇怪啊,以前通常都是: 字段名 between '变量1' and '变量2';把其中一个字段设为主键,就可以是:变量 between 字段名1 and 字段名2;怎么会这样?
      

  5.   

    expr BETWEEN min AND max 
    如果expr对大于或等于min且expr是小于或等于max,BETWEEN返回1,否则它返回0。如果所有的参数类型是一样得,这等价于表达式(min <= expr AND expr <= max)。第一个参数(expr)决定比较如何被执行。如果expr是一个大小写不敏感的字符串表达式,进行一个大小写不敏感的字符串比较。如果expr是一个大小写敏感的字符串表达式,进行一个大小写敏感的字符串比较。如果expr是一个整数表达式,进行整数比较。否则,进行一个浮点(实数)比较。