Python + mysql 多条相似 sql 语句查询如何加速?

查看 68|回复 2
作者:la0wei   
举个栗子
查询北京仓书籍
select * from bookstore where warehouse='beijing'
查询北京仓计算机分类书籍
select * from bookstore where warehouse='beijing' and category='cs'
查询北京仓计算机分类下数据库书籍
select * from bookstore where warehouse='beijing' and category='cs' and subcategory = "database"

假设查询慢,要 2 秒。
如何加速查询?
假如在上面的基础上再加条件?
有什么思路吗,临时表?
同时还要获取数量,具体的语句太多就不一一列举
select count(*) from bookstore
在计数这块,我用的方法是只查询
select * from bookstore where warehouse='beijing'
损失一点前面的速度,但是后面的查询可以通过 python 的元组遍历来获得
for i in all:
if i[5]==cs:
cs_sum += 1 #遍历 pytho 元组,获得 cs 数量
if i[7]==database:
database_sum += 1 #在 cs 基础上获取 database 量

实测 5k 的数据遍历耗时远远小于一次 sql 查询。
根本原因在于我前面写的 sql 查询不能利用上一次查询获取的数据,有优雅的方案吗?

查询, select, bookstore

LeegoYih   
没这必要
LeegoYih   
新版支持 WITH...AS 可以复用查询结果 你研究下。比代码里面要好点
您需要登录后才可以回帖 登录 | 立即注册

返回顶部