首页 > 试题广场 > 在 MySQL 中有这样一个表,记录用户的订单信息: Cre
[单选题]
在 MySQL 中有这样一个表,记录用户的订单信息:
Create Table orders(
    id int primary key auto_increment,
    title varchar(100) not null,
    status int not null,
    context text
) engine=innodb;
有一亿行数据且严格按照 id 递增,且订单 90% 的 title 都是以 xiaomi 开头的;我目前想查询订单以 `xiaomi` 开头的最近 10 条订单的状态(status) 信息,执行这样一个查询性能不佳的语句:

select * from orders where title like '%xiaomi%' order by id;
仅有以下措施可选,现在只能让你做其中唯一一个,你认为最有效的是:()
  • 修改查询列的列表为 id, status
  • 建立 title 列的索引
  • 在 sql 末尾添加 limit 10
  • 修改查询条件 like '%xiaomi%' 为 like 'xiaomi%'
like 属于模糊查询,查询订单以 `xiaomi` 开头,表明不是以xiaomi开头和结尾的订单,多了两个单引号,所以前后要加“%”,limit 10 就是指取前10条的信息。
发表于 2019-08-30 23:27:33 回复(0)
sql中使用了like,即使创建索引,也不会根据索引查询
发表于 2019-07-24 12:21:37 回复(0)