mysql null查询速度_mysql sql 索引相关用法,加快查询速度

适合大型级别的百级以上的数据分页:

如果少于10W的用 sql_2/sql_3即可

表1:

create table `t1`(

`id` int(11) not null auto_increment,

`title` char(200) not null,

`content` text not null,

flag tinyint(1) default '0'

);

sql_1:(慢)

sql_1 = "select id,title from t1 limit 开始行数,每页的纪录数";

查询慢,因为没有用到索引(改进用sql_2):

sql_2:(多慢/少快)

sql_2 = "select id,title from t1 order by id desc 开始行数,每页的纪录数";

查询不理想,用到了索引,但是如果数据大时,也会变慢,(改进用):

如果加上where,如:

sql_3:(多慢/少快)

sql_3 = "select id,title from t1 where flag = 1 order by id desc 开始行数,每页的纪录数";

此时加上 where 时,失去了索引的意义了,修改如下:

先修改数表,增加索引:(给where 的字段也加上索引,并放在索引的开始字段位置,即就是把 limit的字段放最后)

create table `t1`(

`id` int(11) not null auto_increment,

`title` char(200) not null,

`content` text not null,

`flag` tinyint(1) default '0',

primary key(`id`),

key `idx_key`(`flag`,`id`), /* 此时为增加的索引 */

);

sql_4 = "select id,title from t1 where flag = 1 order by flag,id limit 开始行数,每页的纪录数";

同时可以考虑分页的情况:(基本思路如下:)

先创建一个主表,只有 id,title,flag,

再创建一个详细表,如 id,content,

从主表先搜索出,再从详细表中获取相关的具体内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值