乐于分享
好东西不私藏

PyTorch环境配置及安装保姆级最新教程

PyTorch环境配置及安装保姆级最新教程

目录

1、下载anaconda安装包

2、安装

2.1 双击安装包

2.2 点击Next

2.3 点击I Agree

2.4 点击Next

2.5 选择安装路径,Next

2.6 勾选第一个,第三个和第四个,点击Install

2.7 等待安装

2.8 连续点击两个Next后,点击Fnish完成安装

2.9 检查是否安装成功

2.10 配置环境变量

3、安装CUDA

3.1 下载安装包

3.2 安装

3.3 配置环境变量

3.4 检查是否安装成功

4.安装pytorch

4.1 找到下载链接

4.2 创建虚拟环境

4.3 下载pytorch

4.4 检查是否安装成功

5. 安装pycharm

6.将pycharm与pytorch连接在一起

6.1 新建项目并配置环境 

2023.1版PyCharm配置

2025.2版PyCharm配置

6.2 检验是否连接成功

2023.1版检验

2025.2版检验


今天带来PyTorch的安装配置,用于咱们机器学习的跑代码,在软件工程中很常用。

1、下载anaconda安装包

这里我推荐去清华源下载,因为国内的下载速度快,链接如下:

Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

我推荐下载2024这个版本,下载太新的可能有些问题自己解决不了。

2、安装

2.1 双击安装包

2.2 点击Next

2.3 点击I Agree

2.4 点击Next

这里要做一个选择,是只为自己安装还是为所有用户安装,这个主要看自己

2.5 选择安装路径,Next

2.6 勾选第一个,第三个和第四个,点击Install

2.7 等待安装

2.8 连续点击两个Next后,点击Fnish完成安装

Finish页面上的两个选项可以取消勾选,第一个是直接启动anaconda,第二个是跳转到官网

2.9 检查是否安装成功

点开搜索,然后输入anaconda,打开Anaconda Prompt,如果命令行前面有一个(base),并且输入以下命令之后,输出版本,说明安装成功。

conda --version

2.10 配置环境变量

右击此电脑——属性——高级系统设置

点击环境变量

双击系统变量中的path

找到软件所在目录(就是刚才的安装目录),我的在D盘

双击空白的地方就可以添加,对照我下面图片中的三个路径找你自己的路径,然后添加

配置完成

3、安装CUDA

3.1 下载安装包

进入CUDA官网:CUDA Toolkit 11.8 下载 |NVIDIA 开发人员,然后这里推荐下载11.8的安装包,但是要求是你自己电脑的显卡驱动至少为535.215,CUDA版本要大于等于11.8,在命令行窗口输入nvidia-smi查看显卡驱动和CUDA Version的版本,如下图,这是你的电脑能支持的最高版本,只能下载比这个版本低或者等于这个版本的CUDA。

点进去之后,根据以下配置选择,电脑是64位还是32位,可以去设置里面看(设置—系统—系统信息),win10就选10,win11就选11,选好之后点击第五步的下载即可

3.2 安装

双击安装包,点击OK,这个路径安装完之后会自动删除

开始解压

因为我之前下载过CUDA,所以会有下面这个界面,直接点击继续他会删除旧版本,安装现在这个版本,如果你的没有出现这个提示,直接点继续就行

点击“同意并继续”

选择自定义安装,然后点击下一步

只需要第一个CUDA,其他取消勾选

点击CUDA左边的+号,取消第四个选项的勾选,点击下一步

安装位置默认就行,以防后面出现问题,点击下一步

等待安装

点击下一步

点击关闭

3.3 配置环境变量

同样,按照上面步骤打开path,然后可以看到里面已经有两个变量了如下图:

然后还需要配置两个变量,如果你刚才跟我一样默认安装路径,那么我们的路径是一样的,如下图

添加之后,单击选中,点击上移,移到最上方,然后点击确定就可以了

3.4 检查是否安装成功

win+R——输入cmd——回车

输入一下命令,如果出现下图的几行英文,说明已经安装成功

nvcc -V

温馨提示:这里的V一定要大写,不然就会有下面这种报错

nvcc fatal : No input files specified; use option --help for more information

4.安装pytorch

4.1 找到下载链接

首先进入PyTorch官网:PyTorch,由于我们是要下载与CUDA 11.8相匹配的版本,所以划到下面,点击下图所示按钮,下载以前的版本

进去之后往下滑,找到v2.3.1这个版本,我们发现这个版本适配CUDA 11.8(你的CUDA如果是其他版本,一定要看清楚哪个版本的PyTorch适配),然后复制下图红框中这一串英文

4.2 创建虚拟环境

紧接着打开Anaconda Prompt,只需要在搜索框中输入关键词就可以找到,单击打开

先创建一个虚拟环境,输入以下代码,回车,(pytorch是我起的名字,可以换成其它名字,Python安装3.9就可以了,不用太高

conda create -n pytorch python=3.9

这一步输入“y”就行

创建完成后,我们需要激活这个虚拟环境,激活的命令上面创建的结尾就给了,直接复制粘贴,或者自己手打一下,确保万无一失,然后回车

4.3 下载pytorch

接着我们就进入了我们创建的pytorch环境,然后粘贴我们刚才在pytorch官网复制的那串英文,回车(建议白天下载,因为毕竟是国外的网站,白天下载比较快

同样,这里输入“y”,回车即可

等待下载

4.4 检查是否安装成功

输入python,紧接着输入import torch,如果没报错的话说明pytorch安装成功

紧接着查看CUDA有没有,一般情况下是有的,输入以下代码,如果返回True,说明成功,系统有GPU,跑代码速度可以快一点,如果返回False,也不是说环境不能用,仍然是可以使用的,只是代码是用CPU跑,运行速度上有差异而已。

torch.cuda.is_available()

5. 安装pycharm

pycharm的安装可以查看我的另外两篇博客:

2023.1版

下载安装配置Pycharm2023.1保姆级教程

2025.2版

PyCharm2025.2下载安装配置保姆级教程

也可以自己进行一个安装

6.将pycharm与pytorch连接在一起

6.1 新建项目并配置环境 

2023.1版PyCharm配置

点击新建项目之后,出现以下页面,选择“纯Python”进行配置,如下:

选择添加本地解释器

选择Conda环境,然后点击②的位置找到anaconda安装目录中的conda.bat文件,接着点击加载环境

下拉选择我们创建的虚拟环境,然后点击确定

然后返回到这个页面,接着点击创建

进去之后pycharm自动加载文件,等待几分钟就好了

右下角有个pytorch,表明配置成功

点击“pytorch”还可以切换环境,如果有多个环境,点击这里切换还是挺方便的。如下:

2025.2版PyCharm配置

点击新建项目之后,出现以下页面,选择“纯Python”进行配置,如下:

2025.2版本的PyCharm只需要在一个页面配置就行,相对省事儿。

同上,进去之后pycharm自动加载文件,等待几分钟就好了

同上,右下角有个pytorch,表明配置成功

同上,点击“pytorch”还可以切换环境,如果有多个环境,点击这里切换还是挺方便的。如下:

6.2 检验是否连接成功

2023.1版检验

新建一个.py文件,步骤如下

文件名自拟

输入以下代码

import torchprint(torch.cuda.is_available())

右键,点击运行

如果返回一个True,说明已经连接成功。如下:

当然,如果返回的是False也不要担心没连接成功,这个只是检测cuda能不能使用的,如果你在“4.4检查是否安装成功”中的命令提示符窗口中返回的如果也是False,那这里也没问题。另外,其实在新建项目的时候,加载环境可以加载出来,说明基本是可以连接了。最能体现连接成功的操作是:如果运行一个没有问题的.py文件可以运行成功的话,那就说明pytorch + pycharm环境配置完成。输入一下代码测试一下。

import torchx = torch.rand(5,5)print(x)

以下是一个俄罗斯方块的代码,大家也可以拿去测试:

import tkinter as tkfrom tkinter import messageboximport random# 设置行数和列数Row = 20Col = 12# 设置格子的刷新频率,单位是毫秒FPS = 250# 设置每个格子的大小cell_size = 30# 设置窗口的高和宽height = Row * cell_sizewidth = Col * cell_size# 设置不同形状的格子SHAPES = {    "Z": [(-1, -1), (0, -1), (00), (10)],    "O": [(-1, -1), (0, -1), (-10), (00)],    "S": [(-10), (00), (0, -1), (1, -1)],    "T": [(-10), (00), (0, -1), (10)],    "I": [(01), (00), (0, -1), (0, -2)],    "L": [(-10), (00), (-1, -1), (-1, -2)],    "J": [(-10), (00), (0, -1), (0, -2)]}# 设置格子的颜色SHAPESCOLOR = {    "O":"blue",    "S":"red",    "T":"yellow",    "I":"green",    "L":"purple",    "J":"orange",    "Z":"Cyan",}# 绘制面板,将draw_blank_board方法修改成如下方法def draw_board(canvas, block_list):    for ri in range(Row):        for ci in range(Col):            cell_type = block_list[ri][ci]            if cell_type:                draw_cell_background(canvas, ci, ri, SHAPESCOLOR[cell_type])            else:                draw_cell_background(canvas, ci, ri)# 在画板上绘制格子def draw_cell_background(canvas, col, row, color="#CCCCCC"):    x0 = col * cell_size    y0 = row * cell_size    x1 = col * cell_size + cell_size    y1 = row * cell_size + cell_size    # 创建矩形    canvas.create_rectangle(x0, y0, x1, y1, fill=color, outline="white", width=2)# 绘制板块def draw_blank_board(canvas):    for ri in range(Row):        for cj in range(Col):            draw_cell_background(canvas, cj, ri)# 绘制单元格def draw_cells(canvas, col, row, cell_list, color="#CCCCCC"):    """    :param canvas: 画板对象    :param col: 这个形状的的原点所在的列    :param row: 这个形状所的原点所在的行    :param cell_list: 这个形状各个格子相对于自身的原点所处的位置坐标    :param color: 这个形状的颜色    :return:    """    for cell in cell_list:        cell_col, cell_row = cell        ci = cell_col + col        ri = cell_row + row        # 判断是否越界        if 0 <= col < Col and 0 <= row < Row:            draw_cell_background(canvas, ci, ri, color)# 首先创建一个窗体win = tk.Tk()# 绘制画布的长宽canvas = tk.Canvas(win, width=width, height=height)# 打包放置组件对象canvas.pack()# 画背景block_list = []for i in range(Row):    i_row = ['' for j in range(Col)]    block_list.append(i_row)draw_board(canvas, block_list)# 定义让俄罗斯方块移动的方法def draw_block_move(canvas, block, direction=[0,0]):    """    :param canvas: 面板对象    :param block: 俄罗斯方块    :param direction: 移动的方向    :return:    """    shape_type = block['kind']    c, r = block['cr']    cell_list = block['cell_list']    draw_cells(canvas, c, r, cell_list)    dc, dr = direction    new_c, new_r = c + dc, r + dr    block['cr'] = [new_c, new_r]    draw_cells(canvas, new_c, new_r, cell_list, SHAPESCOLOR[shape_type])# 用字典定义每个形状的属性one_block = {    'kind''O'# 对应俄罗斯方块的类型    'cell_list': SHAPES['O'], # 对应的每个俄罗斯方块的坐标    'cr': [33], # 对应的行列坐标}def product_new_block():    # 随机生成新的俄罗斯方块    kind = random.choice(list(SHAPES.keys()))    cr = [Col // 20]    new_block = {        "kind": kind,        "cell_list": SHAPES[kind],        'cr': cr    }    return new_blockdef check_move(block, direction=[0,0]):    """    :param block:俄罗斯方块的前身    :param direction: 移动方向    :return: boolean 是否可以朝着指定的方向移动    """    cc, cr = block['cr']    cell_list = block['cell_list']    for cell in cell_list:        cell_c, cell_r = cell        c = cell_c + cc + direction[0]        r = cell_r + cr + direction[1]        # 判断边界        if c < 0 or c >= Col or r >= Row:            return False        # r >= 0是防止格子下不来的情况        if r >= 0 and block_list[r][c]:            return False    return True# 保存当前的俄罗斯方块到列表里面def save_to_block_list(block):    shape_type = block['kind']    cc, cr = block['cr']    cell_list = block['cell_list']    for cell in cell_list:        cell_c, cell_r = cell        c = cell_c + cc        r = cell_r + cr        block_list[r][c] = shape_typedef horizontal_move_block(event):    """    左右水平移动俄罗斯方块    event:键盘的监听事件    """    # 这里只设置了左右两个方向    direction = [00]    if event.keysym == 'Left':        direction = [-10]    elif event.keysym == 'Right':        direction = [10]    else:        return    global current_block    if current_block is not None and check_move(current_block, direction):        draw_block_move(canvas, current_block, direction)def rotate_block(event):    global current_block    if current_block is None:        return    cell_list = current_block['cell_list']    rotate_list = []    for cell in cell_list:        cell_c, cell_r = cell        rotate_cell = [cell_r, -cell_c]        rotate_list.append(rotate_cell)    block_after_rotate = {        'kind': current_block['kind'],  # 对应俄罗斯方块的类型        'cell_list': rotate_list,        'cr': current_block['cr']    }    if check_move(block_after_rotate):        cc, cr = current_block['cr']        draw_cells(canvas, cc, cr, current_block['cell_list'])        draw_cells(canvas, cc, cr, rotate_list, SHAPESCOLOR[current_block['kind']])        current_block = block_after_rotatedef land(event):    global current_block    if current_block is None:        return    cell_list = current_block['cell_list']    cc, cr = current_block['cr']    min_height = Row    for cell in cell_list:        cell_c, cell_r = cell        c, r = cell_c + cc, cell_r + cr        if block_list[r][c]:            return        h = 0        for ri in range(r + 1, Row):            if block_list[ri][c]:                break            else:                h += 1        if h < min_height:            min_height = h    down = [0, min_height]    if check_move(current_block, down):        draw_block_move(canvas, current_block, down)# 在原有的rotate_block方法(外)下面添加def check_row_complete(row):    for cell in row:        if cell == '':            return False    return Truescore = 0win.title("SCORES: %s" % score)  # 标题中展示分数def check_and_clear():    has_complete_row = False    for ri in range(len(block_list)):        if check_row_complete(block_list[ri]):            has_complete_row = True            # 当前行可消除            if ri > 0:                for cur_ri in range(ri, 0, -1):                    block_list[cur_ri] = block_list[cur_ri - 1][:]                block_list[0] = ['' for j in range(Col)]            else:                block_list[ri] = ['' for j in range(Col)]            global score            # 每消除一次 加10分            score += 10    if has_complete_row:        draw_board(canvas, block_list)        # 重新绘制        win.title("SCORES: %s" % score)# 让游戏不断循环 通过递归实现def game_loop():    win.update()    global current_block    # 如果当前没有俄罗斯方块 产生一个新的    if current_block is None:        # 生成新的俄罗斯方块        new_block = product_new_block()        draw_block_move(canvas, new_block)        current_block = new_block        # 游戏结束        if not check_move(current_block, [00]):            messagebox.showinfo("Game Over!""Your Score is %s" % score)            win.destroy()            return    # 如果当前有了就往下走    else:        if check_move(current_block, [01]):            draw_block_move(canvas, current_block, [01])        else:            # 保存当前的俄罗斯方块            save_to_block_list(current_block)            current_block = None    # 游戏结束    check_and_clear()    win.after(FPS, game_loop) # 注意的是这个game_loop后面不能加括号# 当前的俄罗斯方块current_block = None# 画布聚焦canvas.focus_set()# 添加左右移动的事件canvas.bind("<KeyPress-Left>", horizontal_move_block)canvas.bind("<KeyPress-Right>", horizontal_move_block)# 添加变化角度的事件canvas.bind("<KeyPress-Up>", rotate_block)canvas.bind("<KeyPress-Down>", land)game_loop()win.mainloop()

界面如下:

2025.2版检验

同上,新建一个.py文件

名字自拟

同上,输入以下代码

import torchprint(torch.cuda.is_available())

右键,点击运行

同上,如果返回一个True,说明已经连接成功。如下:

同上,如果返回的是False也不要担心没连接成功,这个只是检测cuda能不能使用的,如果你在“4.4检查是否安装成功”中的命令提示符窗口中返回的如果也是False,那这里也没问题。另外,其实在新建项目的时候,加载环境可以加载出来,说明基本是可以连接了。最能体现连接成功的操作是:如果运行一个没有问题的.py文件可以运行成功的话,那就说明pytorch + pycharm环境配置完成。输入以下代码测试一下。

import torchx = torch.rand(5,5)print(x)

同上,以下是一个俄罗斯方块的代码,大家也可以拿去测试:

import tkinter as tkfrom tkinter import messageboximport random# 设置行数和列数Row = 20Col = 12# 设置格子的刷新频率,单位是毫秒FPS = 250# 设置每个格子的大小cell_size = 30# 设置窗口的高和宽height = Row * cell_sizewidth = Col * cell_size# 设置不同形状的格子SHAPES = {    "Z": [(-1, -1), (0, -1), (00), (10)],    "O": [(-1, -1), (0, -1), (-10), (00)],    "S": [(-10), (00), (0, -1), (1, -1)],    "T": [(-10), (00), (0, -1), (10)],    "I": [(01), (00), (0, -1), (0, -2)],    "L": [(-10), (00), (-1, -1), (-1, -2)],    "J": [(-10), (00), (0, -1), (0, -2)]}# 设置格子的颜色SHAPESCOLOR = {    "O":"blue",    "S":"red",    "T":"yellow",    "I":"green",    "L":"purple",    "J":"orange",    "Z":"Cyan",}# 绘制面板,将draw_blank_board方法修改成如下方法def draw_board(canvas, block_list):    for ri in range(Row):        for ci in range(Col):            cell_type = block_list[ri][ci]            if cell_type:                draw_cell_background(canvas, ci, ri, SHAPESCOLOR[cell_type])            else:                draw_cell_background(canvas, ci, ri)# 在画板上绘制格子def draw_cell_background(canvas, col, row, color="#CCCCCC"):    x0 = col * cell_size    y0 = row * cell_size    x1 = col * cell_size + cell_size    y1 = row * cell_size + cell_size    # 创建矩形    canvas.create_rectangle(x0, y0, x1, y1, fill=color, outline="white", width=2)# 绘制板块def draw_blank_board(canvas):    for ri in range(Row):        for cj in range(Col):            draw_cell_background(canvas, cj, ri)# 绘制单元格def draw_cells(canvas, col, row, cell_list, color="#CCCCCC"):    """    :param canvas: 画板对象    :param col: 这个形状的的原点所在的列    :param row: 这个形状所的原点所在的行    :param cell_list: 这个形状各个格子相对于自身的原点所处的位置坐标    :param color: 这个形状的颜色    :return:    """    for cell in cell_list:        cell_col, cell_row = cell        ci = cell_col + col        ri = cell_row + row        # 判断是否越界        if 0 <= col < Col and 0 <= row < Row:            draw_cell_background(canvas, ci, ri, color)# 首先创建一个窗体win = tk.Tk()# 绘制画布的长宽canvas = tk.Canvas(win, width=width, height=height)# 打包放置组件对象canvas.pack()# 画背景block_list = []for i in range(Row):    i_row = ['' for j in range(Col)]    block_list.append(i_row)draw_board(canvas, block_list)# 定义让俄罗斯方块移动的方法def draw_block_move(canvas, block, direction=[0,0]):    """    :param canvas: 面板对象    :param block: 俄罗斯方块    :param direction: 移动的方向    :return:    """    shape_type = block['kind']    c, r = block['cr']    cell_list = block['cell_list']    draw_cells(canvas, c, r, cell_list)    dc, dr = direction    new_c, new_r = c + dc, r + dr    block['cr'] = [new_c, new_r]    draw_cells(canvas, new_c, new_r, cell_list, SHAPESCOLOR[shape_type])# 用字典定义每个形状的属性one_block = {    'kind''O'# 对应俄罗斯方块的类型    'cell_list': SHAPES['O'], # 对应的每个俄罗斯方块的坐标    'cr': [33], # 对应的行列坐标}def product_new_block():    # 随机生成新的俄罗斯方块    kind = random.choice(list(SHAPES.keys()))    cr = [Col // 20]    new_block = {        "kind": kind,        "cell_list": SHAPES[kind],        'cr': cr    }    return new_blockdef check_move(block, direction=[0,0]):    """    :param block:俄罗斯方块的前身    :param direction: 移动方向    :return: boolean 是否可以朝着指定的方向移动    """    cc, cr = block['cr']    cell_list = block['cell_list']    for cell in cell_list:        cell_c, cell_r = cell        c = cell_c + cc + direction[0]        r = cell_r + cr + direction[1]        # 判断边界        if c < 0 or c >= Col or r >= Row:            return False        # r >= 0是防止格子下不来的情况        if r >= 0 and block_list[r][c]:            return False    return True# 保存当前的俄罗斯方块到列表里面def save_to_block_list(block):    shape_type = block['kind']    cc, cr = block['cr']    cell_list = block['cell_list']    for cell in cell_list:        cell_c, cell_r = cell        c = cell_c + cc        r = cell_r + cr        block_list[r][c] = shape_typedef horizontal_move_block(event):    """    左右水平移动俄罗斯方块    event:键盘的监听事件    """    # 这里只设置了左右两个方向    direction = [00]    if event.keysym == 'Left':        direction = [-10]    elif event.keysym == 'Right':        direction = [10]    else:        return    global current_block    if current_block is not None and check_move(current_block, direction):        draw_block_move(canvas, current_block, direction)def rotate_block(event):    global current_block    if current_block is None:        return    cell_list = current_block['cell_list']    rotate_list = []    for cell in cell_list:        cell_c, cell_r = cell        rotate_cell = [cell_r, -cell_c]        rotate_list.append(rotate_cell)    block_after_rotate = {        'kind': current_block['kind'],  # 对应俄罗斯方块的类型        'cell_list': rotate_list,        'cr': current_block['cr']    }    if check_move(block_after_rotate):        cc, cr = current_block['cr']        draw_cells(canvas, cc, cr, current_block['cell_list'])        draw_cells(canvas, cc, cr, rotate_list, SHAPESCOLOR[current_block['kind']])        current_block = block_after_rotatedef land(event):    global current_block    if current_block is None:        return    cell_list = current_block['cell_list']    cc, cr = current_block['cr']    min_height = Row    for cell in cell_list:        cell_c, cell_r = cell        c, r = cell_c + cc, cell_r + cr        if block_list[r][c]:            return        h = 0        for ri in range(r + 1, Row):            if block_list[ri][c]:                break            else:                h += 1        if h < min_height:            min_height = h    down = [0, min_height]    if check_move(current_block, down):        draw_block_move(canvas, current_block, down)# 在原有的rotate_block方法(外)下面添加def check_row_complete(row):    for cell in row:        if cell == '':            return False    return Truescore = 0win.title("SCORES: %s" % score)  # 标题中展示分数def check_and_clear():    has_complete_row = False    for ri in range(len(block_list)):        if check_row_complete(block_list[ri]):            has_complete_row = True            # 当前行可消除            if ri > 0:                for cur_ri in range(ri, 0, -1):                    block_list[cur_ri] = block_list[cur_ri - 1][:]                block_list[0] = ['' for j in range(Col)]            else:                block_list[ri] = ['' for j in range(Col)]            global score            # 每消除一次 加10分            score += 10    if has_complete_row:        draw_board(canvas, block_list)        # 重新绘制        win.title("SCORES: %s" % score)# 让游戏不断循环 通过递归实现def game_loop():    win.update()    global current_block    # 如果当前没有俄罗斯方块 产生一个新的    if current_block is None:        # 生成新的俄罗斯方块        new_block = product_new_block()        draw_block_move(canvas, new_block)        current_block = new_block        # 游戏结束        if not check_move(current_block, [00]):            messagebox.showinfo("Game Over!""Your Score is %s" % score)            win.destroy()            return    # 如果当前有了就往下走    else:        if check_move(current_block, [01]):            draw_block_move(canvas, current_block, [01])        else:            # 保存当前的俄罗斯方块            save_to_block_list(current_block)            current_block = None    # 游戏结束    check_and_clear()    win.after(FPS, game_loop) # 注意的是这个game_loop后面不能加括号# 当前的俄罗斯方块current_block = None# 画布聚焦canvas.focus_set()# 添加左右移动的事件canvas.bind("<KeyPress-Left>", horizontal_move_block)canvas.bind("<KeyPress-Right>", horizontal_move_block)# 添加变化角度的事件canvas.bind("<KeyPress-Up>", rotate_block)canvas.bind("<KeyPress-Down>", land)game_loop()win.mainloop()

界面如下:

如果对你有用的话,可以点赞收藏哦,以防找不到了!!!

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-24 17:15:17 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/863616.html
  2. 运行时间 : 0.117537s [ 吞吐率:8.51req/s ] 内存消耗:4,596.58kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0c9671e55b9e82de7795b35acb954198
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000474s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000869s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000288s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000265s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000471s ]
  6. SELECT * FROM `set` [ RunTime:0.000222s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000507s ]
  8. SELECT * FROM `article` WHERE `id` = 863616 LIMIT 1 [ RunTime:0.009218s ]
  9. UPDATE `article` SET `lasttime` = 1784884517 WHERE `id` = 863616 [ RunTime:0.014560s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000334s ]
  11. SELECT * FROM `article` WHERE `id` < 863616 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000501s ]
  12. SELECT * FROM `article` WHERE `id` > 863616 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000471s ]
  13. SELECT * FROM `article` WHERE `id` < 863616 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000586s ]
  14. SELECT * FROM `article` WHERE `id` < 863616 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001534s ]
  15. SELECT * FROM `article` WHERE `id` < 863616 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.009146s ]
0.119396s