首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一道大数据习题

今天要说的这个,还算不上大数据,只能说跟以前的习题相比,数据量略大了一点。 前阵子我们做了个抓取热映电影的程序。有个朋友看到了就说,他正好需要一项数据:豆瓣上的电影按评价人数从高到底排序。...问题分析: 基本思路是:1.抓下所有的电影;2.按评价人数排序 然而豆瓣上并没有提供“所有电影”这样一个列表,也没有一个全覆盖的分类,有的只是:标签。...所以我想到的方法就是:先抓取这个页面上的所有标签,然后进入每个标签页的前50页抓取电影列表。我们要的信息列表页上都已经有了,不用再进入影片页面。但在记录电影的时候,需要去除重复。...一个供参考的优化方法是:在抓取的时候就分段存储,预先给评价人数设定一些值,按这些值来存储不同级别的电影。最后排序的时候可以每一段分别排序,而如果高评价人数的电影已经超过三千部,就无需再排后面的影片。...结果展示: 最后的结果建议保存成一个html文件,并且把影片的豆瓣地址做成链接。这样在浏览器中查看的时候,就可以直接链接到对应的豆瓣页面上。

86760

⑩③【MySQL】详解SQL优化

操作如下: # (命令行)客户端连接数据库时,加上参数: --local-infile mysql --local-infile -u root -p -- 查看从本地加载文件导入数据的开关是否开启 select...当页中删除的记录达到MERGE_THRESHOLD(默认为页的50%),InnoDB会开始寻找最靠近的页(前或后)看看是否可以将两个页合并以优化空间使用。...合并↓ 主键设计原则: 主键设计原则: ①在满足业务需求的情况下,尽量降低主键的长度。 ②插入数据时,尽量选择顺序插入,选择使用AUTO_INCREMENT自增主键。...优化策略: 一般分页查询时,通过建立覆盖索引能够较好提升性能,可通过覆盖索引+子查询形式进行优化。...服务层对于返回的每一行,放一个数字“1”进去,直接按行进行累加。

22740
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL数据库进阶-SQL优化

    当页中删除的记录到达 MERGE_THRESHOLD(默认为页的50%),InnoDB会开始寻找最靠近的页(前后)看看是否可以将这两个页合并以优化空间使用。...MERGE_THRESHOLD:合并页的阈值,可以自己设置,在创建表或创建索引时指定 主键设计原则: 满足业务需求的情况下,尽量降低主键的长度 插入数据时,尽量选择顺序插入,选择使用 AUTO_INCREMENT..., age, phone from tb_user order by age asc, phone desc; 总结 根据排序字段建立合适的索引,多字段排序时,也遵循最左前缀法则 尽量使用覆盖索引...,返回给服务层,服务层判断是否为null,不为null,计数累加;有not null约束的话,InnoDB引擎会遍历整张表把每一行的字段值都取出来,返回给服务层,直接按行进行累加 count(1)...服务层对于返回的每一层,放一个数字 1 进去,直接按行进行累加 count(*):InnoDB 引擎并不会把全部字段取出来,而是专门做了优化,不取值,服务层直接按行进行累加 按效率排序:count

    16610

    MySQL索引知识结构

    索引是什么在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。...物理存储分类MySQL索引按叶子节点存储(物理存储)的是否为完整表数据分为:聚簇索引、二级索引(辅助索引)聚簇索引:叶子节点存放的是一行完整的用户记录,叶子节点间按主键id递增二级索引:子节点存放的是主键值...覆盖索引:在查询时使用了二级索引,如果查询的列在二级索引里查询的到,那么就不需要回表,这个过程就是覆盖索引字段特性分类MySQL索引按字段特性分类可分为:主键索引、普通索引、前缀索引。...字段个数分类MySQL索引按字段个数分类可分为:单列索引、联合索引(复合索引、组合索引),从字面上就知道单列索引是单独一个列上建立的索引,而联合索引是建立在多列上的索引。...Explain 查看执行计划上面都是讲失效场景,但是分析具体一条查询语句是否真实失效,还需要借助Explain查看执行计划,它可以模拟优化器执行SQL查询语句,让你知道你的SQL语句是怎么处理的。

    70421

    MySQL进阶学习之SQL优化【插入,主键,排序,分组,分页,计数】

    像这样当页总删除的记录达到 MERGE_THRESHOLD(默认为页的50%),InnoDB会开始寻找最靠近的页(前或后)看看是否可以将两个页合并以优化空间使用。...注: MERGE_THRESHOLD:合并页的阈值,可以自己设置,在创建表或者创建索引时指定。 2.4 主键设计原则 满足业务需求的情况下,尽量降低主键的长度。...由上述的测试,我们得出order by优化原则: 根据排序字段建立合适的索引,多字段排序时,也遵循最左前缀法则。 尽量使用覆盖索引。...优化思路: 一般分页查询时,通过创建 覆盖索引 能够比较好地提高性能,也可以通过覆盖索引加子查询形式进行优化。...服务层拿到主键后,直接按行进行累加(主键不可能为null) count(字 段) 没有not null 约束 : InnoDB 引擎会遍历整张表把每一行的字段值都取出来,返回给服务层,服务层判断是否为null

    2.2K30

    干货|MySQL增、删、改查性能优化的10个小技巧

    定义: 当页中数据被删除到MERGE_THRESHOLD(默认是页的50%),InnoDB会开始寻找最靠近的页(前或后)看看是否可以将两个页合并以优化空间使用。...主键设计原则: 满足业务需求情况下,尽量降低主键的长度(因为二级索引叶子节点存储的是主键值,主键值越长,占用的空间越大,在搜索时需要耗费磁盘IO的次数就越多) 插入数据时,尽量顺序插入,选择使用AUTO_INCREMENT...,尽量避免对逐渐的修改(修改了主键,需要重新维护对应的索引数据结构) 二、查询优化 1、Order by优化 使用explain关键字查看SQL语句的执行计划,注意:出现Using index的前提时走了覆盖索引...中字段满足最左前缀法则) Using index;Using temporary:案例如不遵循最左前缀法则,但是命中索引覆盖时,可能出现这个值 优化技巧: 通过索引来提高效率,注意是否满足最左前缀法则...优化思路:借助内存数据库手动维护总条数,插入时加1,删除时减1等 count的用法: count(*): 对返回的数据进行计数。逻辑:引擎做了专门优化,不取值,服务层直接按行进行累加。

    1.8K10

    测试用例(功能用例)——完整demo(一千多条测试用例)

    ,点击“资产盘点”跳转至资产盘点列表页; 页面上方显示盘点单相关信息:盘点单号、盘点单名称、盘点说明、盘点开始日期、盘点结束日期(为空); 页面下方显示资产列表,系统支持按照“是否已盘”(选项:已盘点+...; 按供应商统计: 在统计报表页面,点击“按供应商”选项卡,进入按供应商统计页面; 页面上方显示柱状图,根据资产数量升序排列; 页面下方显示列表:显示各供应商下的的资产数量及相应比例; 统计时仅统计“正常...”状态的资产; 按品牌统计: 在统计报表页面,点击“按品牌”选项卡,进入按品牌统计页面; 页面上方显示柱状图,根据资产数量升序排列; 页面下方显示列表:显示各品牌下的的资产数量及相应比例; 统计时仅统计...“正常”状态的资产; 按取得方式统计: 在统计报表页面,点击“按取得方式”选项卡,进入按取得方式统计页面; 页面上方显示柱状图,根据资产数量升序排列; 页面下方显示列表:显示各取得方式下的的资产数量及相应比例...”、“按存放地点统计”链接; 按资产状态统计: 在统计报表页面,点击“按资产状态统计”,进入按资产状态统计页面; 页面上方显示饼状图,下方显示列表:显示正常和已报废状态的资产数量及相应比例; 点击“<”

    7.7K31

    AS自带例程mappServicesHighlight 使用情况报告

    这个Demo例程通过程序模拟了咖啡机项目,并使用mapp Service 中的功能实现很多需求。项目面通过mappView实现。...然后可以测试排序和过滤功能。可以按升序或降序对警报进行排序。报警发生的时间顺序或过滤特定报警名称: 排序对话框 筛选对话框 最后,切换到警报历史页面。...排序和过滤功能可用于搜索特定报警。 按下按钮,收集的警报历史记录可导出到USB闪存驱动器。 2.4 Mapp Recipe 接着,你可以可以导航到“mapp Recipe”页。此页提供咖啡配方概述。...此外,按下可将整个事件列表导出到USB闪存驱动器。 2.5 Mapp Audit 所有对配方系统的更改由mapp audit记录。这些事件都会被记录在mapp Audit页上。...优势 mapp序列可用于使任何进程动态:过程是否是一个整体机器-就像在注塑工业-或简单的加工顺序某些工件。 2.9 Mapp IO 编辑咖啡机序列后,下一步是更改咖啡机硬件。为此,请导航到“设置”页。

    1.4K20

    典藏版Web功能测试用例库

    复选 排序 ​ 正序,从小到大 ​ 倒序,从大到小 ​ 对所有结果排序,而非仅对当前分页 ​ 任务状态列排序,按创建时间倒序,然后按未提交、审核不通过、审核中、审核通过排序,即把操作列可用按钮多的放在前面...​ 保存后查看 ​ 不填写,直接保存 ​ a进入新增页面,b完成一次新增,a再保存,应保存成功(可能编号重复导致a保存失败) ​ 输入与已存在重复的数据,如代码、名称 修改按钮 ​ 修改成功的提示...​ 数据写入表中 ​ xgsj、xgry、yxbz等字段 ​ loading ​ 修改后查看 ​ 不修改,直接保存 ​ 多次修改 删除按钮 ​ 是否确认删除的提示 ​ 直接刷新页面即可,...可能有些功能没有加判断,导致删除了有些功能还查得到数据 收藏按钮 ​ 收藏,添加到收藏,按钮变为取消收藏 ​ 取消收藏,从收藏中移除,按钮变为收藏 ​ 收藏多个,形成多个分页 ​ 收藏后数据展示的排序是否与原来一致...​ 更改所有项后重置 ​ 重置后光标 ​ 修改后重置,为修改后的值 ​ 只修改不保存,退出后再次修改,未保存的数据重置 查看页面 ​ 界面显示 ​ 页面失真 ​ 特殊字符 ​ 编辑控件要做成灰色不可编辑的效果

    3.6K21

    巧用 Redis,实现微博 Feed 流功能!

    feed 流分类 Feed 流常见的分类有两种: Timeline:按发布的时间顺序排序,产品如果选择 Timeline 类型,那么就是认为 Feed 流中的 Feed 不多,但是每个 Feed 都很重要...Rank:按某个非时间的因子排序,一般是按照用户的喜好度排序,一般用于新闻推荐类、商品推荐等。 设计 设计一个 Feed 流系统,两个关键步骤,一个是 Feed 流的 初始化,一个是 推送。...这里面有几个关键点: 插播一条,如果你近期准备面试跳槽,建议在ddkk.com在线刷题,涵盖 1万+ 道 Java 面试题,几乎覆盖了所有主流技术面试题,还有市面上最全的技术栈500套,精品系列教程,免费提供...推拉结合模式# 当用户发布一条新的 Feed 时,处理流程如下: 1、 先从关注列表中读取到自己的粉丝列表,以及判断自己是否是大V; 2、 将自己的Feed消息写入个人页Timeline如果是大V,写入流程到此就结束了...万+ 道 Java 面试题,几乎覆盖了所有主流技术面试题,还有市面上最全的技术栈500套,精品系列教程,免费提供。

    55210

    报表测试

    针对数据统计展现,我们需要了解页面上展现的数据来源于库中的哪些表哪些字段,根据什么样的规则来统计。把所有需要展现的数据集对应清楚,这样才能有效的进行数据准备,验证前端的统计、展现是否有问题。...是否只显示了报表设置的对应范围。2. 特别要注意边界数据,要清楚报表的需求,是否需要过滤掉被选择的数据.如时间选择为2006-9-27~2007-9-27,那么是否应该包含9-27这天。...数据的排序:1.排序方式是否与报表设置一致(如果没有设置,是否有一个清晰的默认排序方式,如按字母或数字排序)。数据准确性:1....对于各种分类统计,首先验证数据总量是否一致,其次验证各类数据的总和是否一致,特别注意四舍五入对数据的影响。2. 所登录的用户是否能查看到全量的数据,还是部分数据,部分数据的统计是否正确。...报表的页首与页尾:是否采用了一致的规则。4. 分页:当输出的内容多时,分页是否正确,翻页功能是否正确。友好性:1.数据或图表是否清晰,一目了然。2.数据的展示符合用户的习惯。

    1.3K20

    【MySQL-26】万字总结<SQL优化>——【插入优化 主键优化 order by优化-group by优化-limit优化-count优化-update优化】

    顺序插入可以减少 页分裂 (下文主键优化有详解)相应博客传送门 二.主键优化 1.主键设计原则 满足业务需求的情况下, 尽量降低主键的长度。...当页中删除的记录达到 MERGE_THRESHOLD(默认为页的50%),InnoDB会开始寻找最靠近的页(前或后) 看看是否可以将两个页合并以优化空间使用。...,触发页合并 寻找最靠近的页(前或后),将两个页合并以优化空间使用 三.order by优化 尽量使用 覆盖索引INDEX ....如果不可避免的出现filesort(详情看下方介绍),大数据量排序时,可以适当增大排序缓冲区大小sort_buffer_size(默认256k) 1.覆盖索引index与filesort Using...,效率低 创建索引(age 和 phone的联合索引)后,看执行结果为Using Index, 根据age,phone进行升序排序 , 用到了覆盖索引 如果是根据age,phone进行降序升序混合排序

    7310

    SQL优化

    当页中删除的记录达到MERGE _THRESHOLD(默认为页的50%),InnoDB会开始寻找最靠近的页(前或后)看看是否可以将两个页合并以优化空间使用。...主键设计原则 满足业务需求的情况下,尽量降低主键的长度 插入数据时,尽量选择顺序插入,选择使用AUTO——INCREMENT自增主键 尽量不要使用UUID做主键或者是其他自然主键,如身份证号。...尽量使用覆盖索引。 多字段排序,一个升序一个降序,此时需要注意联合索引在创建时的规则(ASC/DESC)。...优化思路:一般分页查询时,通过创建覆盖索引能够比较好地提高性能,可以通过覆盖索引加子查询形式进行优化。...服务层对于返回的每一行,放一个数字“1”进去,直接按行进行累加。 count() InoDB引擎并不会把全部字段取出来,而是专门做了优化,不取值,服务层直接按行进行累加。

    16450

    Linux 常用命令学习

    常用参数搭配: ls -a 列出目录所有文件,包含以.开始的隐藏文件 ls -A 列出除.及..的其它文件 ls -r 反序排列 ls -t 以文件修改时间排序 ls -S 以文件大小排序 ls -h...以易读大小显示 ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来 实例: (1) 按易读方式按时间反序排序,并显示文件详细信息 ls -lhrt (2) 按大小反序显示文件详细信息...注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!...-i 提示 -r 复制目录及目录内所有项目 -a 复制的文件与原文件时间一样 实例: (1)复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。...,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。

    47340

    一文说清楚ToB SaaS系统的权限管理的设计

    做To B的系统总是遇到权限管理的问题。权限管理不是业务功能,但它确实整个系统的基础,决定着各功能是否可用、系统是否满足企业客户的管理需求。...页面权限:页面的访问权限,如客服部的人员应该不能查看运营部的页面; 操作权限:拥有不同权限的人可以看到并点击不同的按钮进行操作,即使在同一页面上。...如某一页面上有查看、修改两个按钮,用户A可能只能看到并点击查看按钮,而用户B可以看到只能看到查看与修改两个按钮,并且两个按钮均可操作。 数据范围:同一页面下,不同用户看到不同的实体的相关数据。...如在客服部主管和运营部主管在员工信息的页面上,客服部主管只能看到属于客服部的员工的信息,运营部主管只能看到运营部员工的信息。 字段权限:同一页面下,不同用户看到同一实体的不同字段的数据。...是否系统固化角色及其权限?针对不同的系统,不同的业务需求有不同的设计方案。 首先,我们把ToB的SaaS系统划分为两类:专用型 与 通用型。

    3.6K20

    Stirling-PDF一款开源可本地托管的pdf处理利器

    这个本地托管的Web应用程序已发展成为包含全面功能的套件,满足您所有的PDF需求。 Stirling PDF不发起任何出站调用用于记录保留或跟踪目的。...• 自定义下载选项(参见此处的示例) • 并行文件处理和下载 • API用于与外部脚本集成 • 可选的登录和身份验证支持(参见此处的文档) PDF功能 页面操作 • 查看和修改PDF - 查看多页...PDF,自定义查看排序和搜索。...• 将PDF页面重新组织成不同的顺序。 • 每90度增量旋转PDF。 • 删除页面。 • 多页布局(将PDF格式化为多页页面)。 • 按设定百分比缩放页面内容大小。 • 调整对比度。...showUpdate: true # 查看是否有新的更新可用 showUpdateOnlyAdmin: false # 只有管理员可以看到新的更新是否可用,取决于showUpdate必须设置为

    1.6K10

    数据库索引,真的越建越好吗?

    各数据页形成双向链表 每个数据页中的记录按主键顺序形成单链表 每一个数据页中有一个页目录,方便按主键查询记录 数据页结构 页目录通过一个个槽把记录分成不同组。...若查询的是索引列索引或联合索引能覆盖的数据,则查询索引本身已经“覆盖”了需要的数据,无需再回表。这种情况也叫索引覆盖。...索引开销的最佳实践 无需一开始就建立索引,可等到场景明确或数据量超过1w、查询变慢,再针对需要查询、排序或分组的字段创建索引。创建索引后可使用EXPLAIN确认查询是否可以使用索引。...联合索引只能匹配左边的列 虽然对name和score建了联合索引,但仅按score列查询无法走索引 因为在联合索引情况下,数据按照索引第一列排序,第一列数据相同时才会按第二列排序。...默认情况下,读取数据页的I/O成本常数是1(即读取1个页成本是1)。 CPU成本 检测数据是否满足条件和排序等CPU操作的成本。默认情况下,检测记录的成本是0.2。

    1.2K50

    数据库索引,真的越建越好吗?

    各数据页形成双向链表 每个数据页中的记录按主键顺序形成单链表 每一个数据页中有一个页目录,方便按主键查询记录 数据页结构 页目录通过一个个槽把记录分成不同组。...若查询的是索引列索引或联合索引能覆盖的数据,则查询索引本身已经“覆盖”了需要的数据,无需再回表。这种情况也叫索引覆盖。...索引开销的最佳实践 无需一开始就建立索引,可等到场景明确或数据量超过1w、查询变慢,再针对需要查询、排序或分组的字段创建索引。创建索引后可使用EXPLAIN确认查询是否可以使用索引。...联合索引只能匹配左边的列 虽然对name和score建了联合索引,但仅按score列查询无法走索引 因为在联合索引情况下,数据按照索引第一列排序,第一列数据相同时才会按第二列排序。...默认情况下,读取数据页的I/O成本常数是1(即读取1个页成本是1)。 CPU成本 检测数据是否满足条件和排序等CPU操作的成本。默认情况下,检测记录的成本是0.2。

    1.3K50

    报表测试经验小结

    3.通过一定的手段生成数据并固定测试数据。 展现数据: 1.数据覆盖所有分类。 2.数据量需要足够多。 3.需要包含所有边界值(结合展现时的查询条件)。...是否只显示了报表设置的对应范围。 2. 特别要注意边界数据,要清楚报表的需求,是否需要过滤掉被选择的数据.如时间选择为2006-9-27~2007-9-27,那么是否应该包含9-27这天。...数据的排序: 1.排序方式是否与报表设置一致(如果没有设置,是否有一个清晰的默认排序方式,如按字母或数字排序)。 数据准确性: 1....对于各种分类统计,首先验证数据总量是否一致,其次验证各类数据的总和是否一致,特别注意四舍五入对数据的影响。 2. 所登录的用户是否能查看到全量的数据,还是部分数据,部分数据的统计是否正确。...报表的页首与页尾:是否采用了一致的规则。 4. 分页:当输出的内容多时,分页是否正确,翻页功能是否正确。 友好性: 1.数据或图表是否清晰,一目了然。 2.数据的展示符合用户的习惯。

    32010

    python面试题及答案_微型计算机原理与接口第四版答案

    可以发现UI页面上发现不了的bug 检查系统的安全性、稳定性 越底层发现bug,它的修复成本是越低的 检测系统异常处理的能力 提前介入测试,提升测试效率 请问你们公司是如何做接口测试的?...需求分析 对于产品的需求进行认识和理解,这一块主要了解接口 业务逻辑、业务关联 Api文档分析与评审 主要分析:请求和响应 请求: 请求url是否合理 请求信息头是否明确 请求方法是否合理 请求参数是否必填...参考下图: 接口业务逻辑测试 接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值 是否正确的验证,需要覆盖到接口实现的所有业务场景。...错误码异常覆盖 其他的关注点补充 接口有翻页时,页码与页数的异常值测试 数据库的增删改查后,接口数据是否保持一致性 类似文件地址接口,需要查看返回的地址是否可以打开下载 所有列表页接口必须考虑排序值...) 前端请求参数没有问题,查看后端响应的数据是否有问题,如果后端数据存在问题,那就是后端问题 最后一种,前端参数和后端请求都没有问题,这时候可以考虑前端是否做了数据转换(格式化),大概率是这里面处理出问题

    54120
    领券