千万量级数据要在十几秒内返回如何做? 今天被问了一个问题:千万量级的数据库,如果想在规定时间内返回,比如十几秒,有什么方法?这问题太高深,我的常见做法就是尽量优化,优化完了还慢就没办法了,这还制定了返回时间,啥么歌意思,请高手指点一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. 首先要承认,不可以对所有的查询实现这个目标,比如 select * from xxx什么 where 条件都没有。 优化只能针对于特定的查询而言。2。根据你的最常用的SQL语句分析,然后可以使用如下方法。 - 添加索引 - 使用分区表 - 对某些汇总查询,进行物化,比如把每月的统计数据先准备好,然后直接使用。 - ... 千万级,第一次select ,客观的说基本不可能,优化也没用,在前端去做调整吧 比如就是google百度那样的搜索,要在零点几秒内返回结果之类的 用主键作为条件查询一条记录: Select we_id,title,catalog,des,url,img,price from goods where we_id='1000000',例子:http://www.dfwgw.com/dGFva2Uvc2hvdy5odG1sP215aWQ9MTMxMzA1NA==url.html用主键作为条件分页:select SQL_BUFFER_RESULT * from goods g INNER JOIN ( select id as my_id from ( select id from goods order by id desc limit 0,100) as tmp) as temp ON my_id=id注意这个子查询select id from goods order by id desc limit 0,100不要在这儿用select * from goods order by id desc limit 0,100例子:http://www.dfwgw.com/dGFva2UvbGlzdF9hbGwuaHRtbA==url.html全文搜索:方法:http://www.sqlserver.com.cn/c2l0ZS9zaG93Lmh0bWw_bXlpZD0zODI5Nw==url.htmlhttp://www.sqlserver.com.cn/c2l0ZS9zaG93Lmh0bWw_bXlpZD00Mzg4NQ==url.html例子:http://www.findao.cn/ZmluZGFvL2YuYXNwP3E9VDQyODgr5peX6Iiw54mIurl.html SQL优化最快和最少两个原则最快:1、使用主键作为条件2、使用唯一的索引作为条件3、使用整数(或时间)类型的索引作为条件4、使用定长的列索引作为条件最少:缩小查询范围用 select id 等代替 select *用查询先找出最少的主键:select id from goods order by id desc limit 0,100 mysql 5.5 数据库重命名的问题 部分字段的索引中,Sub_part的数字是byte还是字数? 大家帮我看看这个奇葩的存储过程。 查询结果统计分类 求一触发器 添加数据源时候出现错误!! 查询效率问题,高手请进 MY SQL 是不是 MICROSOFT SQL SERVER, 增分 请教!!!关于mysql自动增长错乱的问题 sql语句求助 mysql中 ,数据表以及字段 使用什么编码,最节省储存空间? MySql存储过程问题
2。根据你的最常用的SQL语句分析,然后可以使用如下方法。 - 添加索引
- 使用分区表
- 对某些汇总查询,进行物化,比如把每月的统计数据先准备好,然后直接使用。
- ...
用主键作为条件查询一条记录: Select we_id,title,catalog,des,url,img,price from goods where we_id='1000000',例子:http://www.dfwgw.com/dGFva2Uvc2hvdy5odG1sP215aWQ9MTMxMzA1NA==url.html用主键作为条件分页:
select SQL_BUFFER_RESULT *
from goods g INNER JOIN
( select id as my_id from
( select id from goods
order by id desc limit 0,100
) as tmp
) as temp
ON my_id=id注意这个子查询
select id from goods order by id desc limit 0,100
不要在这儿用
select * from goods order by id desc limit 0,100
例子:http://www.dfwgw.com/dGFva2UvbGlzdF9hbGwuaHRtbA==url.html全文搜索:
方法:
http://www.sqlserver.com.cn/c2l0ZS9zaG93Lmh0bWw_bXlpZD0zODI5Nw==url.html
http://www.sqlserver.com.cn/c2l0ZS9zaG93Lmh0bWw_bXlpZD00Mzg4NQ==url.html
例子:http://www.findao.cn/ZmluZGFvL2YuYXNwP3E9VDQyODgr5peX6Iiw54mIurl.html
1、使用主键作为条件
2、使用唯一的索引作为条件
3、使用整数(或时间)类型的索引作为条件
4、使用定长的列索引作为条件最少:
缩小查询范围
用 select id 等代替 select *
用查询先找出最少的主键:select id from goods order by id desc limit 0,100