V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ihuotui  ›  全部回复第 45 页 / 共 46 页
回复总数  920
1 ... 37  38  39  40  41  42  43  44  45  46  
2016-06-09 01:01:30 +08:00
回复了 zhenjiachen 创建的主题 职场话题 吐槽一下 CTO
团队不满意换,工资不满意换,团队工资都不满意换,方向不对换,技术不对换,程序员换工作理由。
2016-06-04 14:58:41 +08:00
回复了 lansexinyu 创建的主题 问与答 硬盘被全盘格式化了可以恢复吗?
直接恢复分区表,千万不要写数据了,买一个新硬盘来全盘复制后操作。
linux 啊
2016-05-21 12:28:45 +08:00
回复了 Wangxf 创建的主题 职场话题 到了大公司好像突然有点不适应了
体验生活嘛,怕啥,又不是不能换。
2016-05-14 01:42:12 +08:00
回复了 SlipStupig 创建的主题 职场话题 一次莫名其妙的面试
验证码识别技术很多,而且开始流行不是验证码了,换拖动滑块。。
2016-05-05 13:34:18 +08:00
回复了 sivacohan 创建的主题 问与答 求解惑,如何吸引到高级前端工程师加入?
我同事满足要求,在深圳都不止 25k 税前了,为什么去北京?人家追求更加高级环境。
2016-04-30 18:50:07 +08:00
回复了 lianxiangru 创建的主题 程序员 牛逼的程序员跟大多数程序员差别能有多大?
当你不知道两者区别代表你的水平还在之下,例如一个低级程序员面试一个中级,一个高级,就判断不了中级和高级的差距。只有水平高于它才能判断。
看你数据量吧,建议看看我提供的资料
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-04-27 20:01:13 +08:00
回复了 peiweichen 创建的主题 酷工作 [深圳南山][A 轮][互联网招聘 15k~40k]
@peiweichen 发简历没有回应?
2016-04-25 15:47:59 +08:00
回复了 csdreamdong 创建的主题 问与答 session 到底是什么鬼,有没有比较形象的解释。。0 0.
能共享,要自己实现。
2016-04-25 15:38:13 +08:00
回复了 peiweichen 创建的主题 酷工作 [深圳南山][A 轮][互联网招聘 15k~40k]
语言不限,诗词歌赋都可以。哈哈
2016-04-24 21:50:43 +08:00
回复了 Blotimer 创建的主题 Apple Web 开发的话是选 MBA 还是 MBP13 呢
建设升级硬盘吧。
2016-04-24 21:50:18 +08:00
回复了 Blotimer 创建的主题 Apple Web 开发的话是选 MBA 还是 MBP13 呢
性能没有区别,就是屏幕区别,在公司反正都会拓展的,在家也拓展,不能拓展的地方就不工作啦,还愁啥了。
@pimin 最佳回复奖
2016-04-23 23:11:57 +08:00
回复了 ihuotui 创建的主题 问与答 自己写商城的项目,要怎么写? java 的。
@kslr 已经过了那个年纪了,想好好思考。
2016-04-23 21:23:49 +08:00
回复了 coldear 创建的主题 程序员 由于你们代码上的 bug 所造成的最大的经济损失是多少?
公司上市机会,哈哈
1 ... 37  38  39  40  41  42  43  44  45  46  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1992 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 42ms · UTC 16:22 · PVG 00:22 · LAX 09:22 · JFK 12:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.