V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ihuotui  ›  全部回复第 46 页 / 共 47 页
回复总数  933
1 ... 38  39  40  41  42  43  44  45  46  47  
2016 年 5 月 5 日
回复了 sivacohan 创建的主题 问与答 求解惑,如何吸引到高级前端工程师加入?
我同事满足要求,在深圳都不止 25k 税前了,为什么去北京?人家追求更加高级环境。
看你数据量吧,建议看看我提供的资料
Mysql 的分页查询语句的性能分析


  MySql 分页 sql 语句,如果和 MSSQL 的 TOP 语法相比,那么 MySQL 的 LIMIT 语法要显得优雅了许多。使用它来分页是再自然不过的事情了。

2.1 最基本的分页方式:

Sql 代码 收藏代码

SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ...

在中小数据量的情况下,这样的 SQL 足够用了,唯一需要注意的问题就是确保使用了索引:
举例来说,如果实际 SQL 类似下面语句,那么在 category_id, id 两列上建立复合索引比较好:

Sql 代码 收藏代码
SELECT * FROM articles WHERE category_id = 123 ORDER BY id LIMIT 50, 10


2.2 子查询的分页方式:

随着数据量的增加,页数会越来越多,查看后几页的 SQL 就可能类似:
Sql 代码 收藏代码
SELECT * FROM articles WHERE category_id = 123 ORDER BY id LIMIT 10000, 10

一言以蔽之,就是越往后分页, LIMIT 语句的偏移量就会越大,速度也会明显变慢。
此时,我们可以通过子查询的方式来提高分页效率,大致如下:
Sql 代码 收藏代码
SELECT * FROM articles WHERE id >=
(SELECT id FROM articles WHERE category_id = 123 ORDER BY id LIMIT 10000, 1) LIMIT 10


2.3JOIN 分页方式

Sql 代码 收藏代码
SELECT * FROM `content` AS t1
JOIN (SELECT id FROM `content` ORDER BY id desc LIMIT ".($page-1)*$pagesize.", 1) AS t2
WHERE t1.id <= t2.id ORDER BY t1.id desc LIMIT $pagesize;

经过我的测试, join 分页和子查询分页的效率基本在一个等级上,消耗的时间也基本一致。
explain SQL 语句:
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
1 PRIMARY t1 range PRIMARY PRIMARY 4 NULL 6264 Using where
2 DERIVED content index NULL PRIMARY 4 NULL 27085 Using index

----------------------------------------

为什么会这样呢?因为子查询是在索引上完成的,而普通的查询时在数据文件上完成的,通常来说,索引文件要比数据文件小得多,所以操作起来也会更有效率。

实际可以利用类似策略模式的方式去处理分页,比如判断如果是一百页以内,就使用最基本的分页方式,大于一百页,则使用子查询的分页方式。
2016 年 4 月 27 日
回复了 peiweichen 创建的主题 酷工作 [深圳南山][A 轮][互联网招聘 15k~40k]
@peiweichen 发简历没有回应?
能共享,要自己实现。
2016 年 4 月 25 日
回复了 peiweichen 创建的主题 酷工作 [深圳南山][A 轮][互联网招聘 15k~40k]
语言不限,诗词歌赋都可以。哈哈
2016 年 4 月 24 日
回复了 Blotimer 创建的主题 Apple Web 开发的话是选 MBA 还是 MBP13 呢
建设升级硬盘吧。
2016 年 4 月 24 日
回复了 Blotimer 创建的主题 Apple Web 开发的话是选 MBA 还是 MBP13 呢
性能没有区别,就是屏幕区别,在公司反正都会拓展的,在家也拓展,不能拓展的地方就不工作啦,还愁啥了。
@pimin 最佳回复奖
2016 年 4 月 23 日
回复了 ihuotui 创建的主题 问与答 自己写商城的项目,要怎么写? java 的。
@kslr 已经过了那个年纪了,想好好思考。
公司上市机会,哈哈
2016 年 4 月 23 日
回复了 ihuotui 创建的主题 问与答 自己写商城的项目,要怎么写? java 的。
@avichen 不做大而全的那种,只是小型的。也不做太具体的,如果有商业再具体开发。做做基本功能。
2016 年 4 月 23 日
回复了 ihuotui 创建的主题 问与答 自己写商城的项目,要怎么写? java 的。
@avichen 算不算造轮子呢。。哈哈
2016 年 4 月 23 日
回复了 ihuotui 创建的主题 问与答 自己写商城的项目,要怎么写? java 的。
@avichen ,顺便完善自己的能力,上个创业公司搞了商品平台,但是不够好, 还有就是商品那块设计还考虑的不够好,暂时看的好的设计 http://www.cnblogs.com/mmmjiang13/archive/2012/07/05/2575538.html
2016 年 4 月 23 日
回复了 ihuotui 创建的主题 问与答 自己写商城的项目,要怎么写? java 的。
@avichen 个人业余项目,未来看机会可能提供商业化。
2016 年 4 月 23 日
回复了 ihuotui 创建的主题 问与答 自己写商城的项目,要怎么写? java 的。
@avichen 要不要考虑分库分表的?
大城市,然后去看书写程序一年,然后出来工作,然后毕业有 3 年经验。能成为真正的程序员了。
2016 年 4 月 22 日
回复了 Myprincess 创建的主题 职场话题 一次纠结的应聘经历,我应该怎么办?(二)
其实是把风险放在你身上,收益就在他们。
无本创业,谁想创业谁付出,谁承担风险。
100%按照市场工资计算。不是就别去了。
1 ... 38  39  40  41  42  43  44  45  46  47  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   967 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 67ms · UTC 20:11 · PVG 04:11 · LAX 12:11 · JFK 15:11
♥ Do have faith in what you're doing.