乐于分享
好东西不私藏

第262讲:多重筛选与高级筛选自动化,Excel VBA与Python的数据筛选技术深度对比

第262讲:多重筛选与高级筛选自动化,Excel VBA与Python的数据筛选技术深度对比

一、实际业务场景解析

在客户关系管理(CRM)系统中,我们经常需要从海量客户数据中提取符合特定条件的记录。假设我们手头有一个包含10万条记录的客户数据表,字段包括:客户ID、客户姓名、地区、消费金额、最后购买日期等。现在需要快速找出所有华东地区且消费金额超过5000元的重要客户,以便进行精准营销。

传统的手工筛选效率低下且容易出错,而自动化的筛选方案能大幅提升工作效率。下面我们将分别通过Excel VBA和Python两种技术方案实现这一需求。

二、Excel VBA实现方案

2.1 基础筛选方法:AutoFilter

对于简单的多条件筛选,Excel的AutoFilter功能是最直接的选择:

Sub MultiConditionFilter()    Dim ws As Worksheet    Set ws = ThisWorkbook.Worksheets("客户数据")    '清除已有筛选    If ws.AutoFilterMode Then        ws.AutoFilterMode = False    End If    '设置筛选范围(假设数据从A1开始)    Dim lastRow As Long    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row    '应用自动筛选    ws.Range("A1:E" & lastRow).AutoFilter    '设置多重筛选条件    '条件1:地区为"华东"(假设地区在C列)    ws.Range("A1:E" & lastRow).AutoFilter Field:=3, Criteria1:="华东"    '条件2:消费金额>5000(假设金额在D列)    ws.Range("A1:E" & lastRow).AutoFilter Field:=4, Criteria1:=">5000"    '复制筛选结果到新工作表    Dim newWs As Worksheet    Set newWs = ThisWorkbook.Worksheets.Add    newWs.Name = "筛选结果_" & Format(Now, "yyyymmddhhmmss")    ws.Range("A1:E" & lastRow).SpecialCells(xlCellTypeVisible).Copy _        newWs.Range("A1")    '调整列宽    newWs.Columns("A:E").AutoFit    MsgBox "筛选完成!共找到" & _        Application.WorksheetFunction.Subtotal(103, ws.Range("A:A")) - 1 & _        "条记录。", vbInformationEnd Sub

2.2 高级筛选方法:AdvancedFilter

对于更复杂的筛选需求,AdvancedFilter提供了更大的灵活性:

Sub AdvancedFilterExample()    Dim ws As Worksheet, criteriaWs As Worksheet, resultWs As Worksheet    Dim dataRange As Range, criteriaRange As Range    Set ws = ThisWorkbook.Worksheets("客户数据")    '创建条件区域    Set criteriaWs = ThisWorkbook.Worksheets.Add    criteriaWs.Name = "条件区域"    '设置条件区域标题    criteriaWs.Range("A1").Value = "地区"    criteriaWs.Range("B1").Value = "消费金额"    '设置筛选条件    criteriaWs.Range("A2").Value = "华东"    criteriaWs.Range("B2").Value = ">5000"    '定义数据范围和条件范围    Dim lastRow As Long    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row    Set dataRange = ws.Range("A1:E" & lastRow)    Set criteriaRange = criteriaWs.Range("A1:B2")    '创建结果工作表    Set resultWs = ThisWorkbook.Worksheets.Add    resultWs.Name = "高级筛选结果"    '执行高级筛选    dataRange.AdvancedFilter _        Action:=xlFilterCopy, _        CriteriaRange:=criteriaRange, _        CopyToRange:=resultWs.Range("A1"), _        Unique:=False    '清理临时工作表    Application.DisplayAlerts = False    criteriaWs.Delete    Application.DisplayAlerts = True    '统计结果    Dim resultCount As Long    resultCount = resultWs.Cells(resultWs.Rows.Count, "A").End(xlUp).Row - 1    MsgBox "高级筛选完成!共找到" & resultCount & "条符合条件的记录。", _        vbInformationEnd Sub

2.3 VBA筛选的优化技巧

Sub OptimizedFilter()    '优化性能的技巧    Application.ScreenUpdating = False    Application.Calculation = xlCalculationManual    Application.EnableEvents = False    Dim startTime As Double    startTime = Timer    '...执行筛选代码...    '恢复设置    Application.EnableEvents = True    Application.Calculation = xlCalculationAutomatic    Application.ScreenUpdating = True    Debug.Print "筛选耗时:" & Timer - startTime & "秒"End Sub

三、Python实现方案

3.1 基础Pandas筛选

import pandas as pdimport timeimport numpy as npclass CustomerDataFilter:    def __init__(self, file_path):        """初始化,加载客户数据"""        self.df = pd.read_excel(file_path)        self.results = None    def basic_filter(self):        """基础条件筛选:地区=华东 且 金额>5000"""        start_time = time.time()        # 方法1:基础布尔索引        condition1 = self.df['地区'] == '华东'        condition2 = self.df['消费金额'] > 5000        # 组合条件        self.results = self.df[condition1 & condition2]        # 方法2:使用query方法(更简洁)        # self.results = self.df.query("地区 == '华东' and 消费金额 > 5000")        elapsed_time = time.time() - start_time        print(f"基础筛选完成!找到{len(self.results)}条记录")        print(f"筛选耗时:{elapsed_time:.3f}秒")        return self.results    def advanced_filter(self, additional_conditions=None):        """高级筛选:支持动态条件"""        start_time = time.time()        # 基础条件        conditions = [            self.df['地区'] == '华东',            self.df['消费金额'] > 5000        ]        # 添加额外条件        if additional_conditions:            for condition in additional_conditions:                conditions.append(condition)        # 合并所有条件        if conditions:            combined_condition = conditions[0]            for condition in conditions[1:]:                combined_condition = combined_condition & condition            self.results = self.df[combined_condition]        else:            self.results = self.df.copy()        elapsed_time = time.time() - start_time        print(f"高级筛选完成!找到{len(self.results)}条记录")        print(f"筛选耗时:{elapsed_time:.3f}秒")        return self.results    def export_results(self, output_path):        """导出筛选结果"""        if self.results is not None:            self.results.to_excel(output_path, index=False)            print(f"结果已导出到:{output_path}")        else:            print("请先执行筛选操作")    def get_statistics(self):        """获取筛选结果的统计信息"""        if self.results is not None:            stats = {                '总记录数'len(self.results),                '平均消费金额'self.results['消费金额'].mean(),                '最大消费金额'self.results['消费金额'].max(),                '最小消费金额'self.results['消费金额'].min(),                '总消费金额'self.results['消费金额'].sum(),                '客户地区分布'self.results['地区'].value_counts().to_dict()            }            return stats        return None# 使用示例if __name__ == "__main__":    # 创建示例数据    np.random.seed(42)    sample_size = 100000    data = {        '客户ID'range(1, sample_size + 1),        '客户姓名': [f'客户_{i}' for i in range(1, sample_size + 1)],        '地区': np.random.choice(['华东''华北''华南''华西'], sample_size),        '消费金额': np.random.randint(10010000, sample_size),        '最后购买日期': pd.date_range('2023-01-01', periods=sample_size, freq='D')    }    df = pd.DataFrame(data)    df.to_excel('客户数据.xlsx', index=False)    # 执行筛选    filter_tool = CustomerDataFilter('客户数据.xlsx')    # 基础筛选    results = filter_tool.basic_filter()    # 获取统计信息    stats = filter_tool.get_statistics()    print("\n统计信息:")    for key, value in stats.items():        print(f"{key}{value}")    # 导出结果    filter_tool.export_results('筛选结果.xlsx')

3.2 性能优化技巧

import pandas as pdfrom numba import jitimport numpy as npclass OptimizedFilter:    def __init__(self, df):        self.df = df        self._create_indexes()    def _create_indexes(self):        """为常用筛选字段创建索引"""        if '地区' in self.df.columns:            self.region_index = self.df.groupby('地区').indices        if '消费金额' in self.df.columns:            # 对数值型字段进行分桶索引            self.amount_bins = pd.cut(self.df['消费金额'], bins=10)            self.amount_index = self.df.groupby(self.amount_bins).indices    def indexed_filter(self, region='华东', min_amount=5000):        """使用索引加速筛选"""        start_time = time.time()        # 先通过地区索引快速定位        if hasattr(self'region_index'and region in self.region_index:            region_indices = self.region_index[region]            region_df = self.df.iloc[region_indices]        else:            region_df = self.df        # 再筛选金额        results = region_df[region_df['消费金额'] > min_amount]        elapsed_time = time.time() - start_time        print(f"索引筛选耗时:{elapsed_time:.3f}秒")        return results    @staticmethod    @jit(nopython=True)    def numba_filter(regions, amounts, target_region, min_amount):        """使用Numba加速数值计算"""        mask = np.zeros(len(regions), dtype=np.bool_)        for i in range(len(regions)):            if regions[i] == target_region and amounts[i] > min_amount:                mask[i] = True        return mask# 使用Numba加速筛选regions_array = df['地区'].to_numpy()amounts_array = df['消费金额'].to_numpy()mask = OptimizedFilter.numba_filter(regions_array, amounts_array, '华东'5000)results = df[mask]

3.3 高级功能扩展

class AdvancedDataFilter:    def __init__(self, df):        self.df = df    def dynamic_query(self, conditions_dict):        """        动态条件查询        conditions_dict格式:        {            'column1': {'operator': '>', 'value': 100},            'column2': {'operator': '==', 'value': '华东'},            'column3': {'operator': 'in', 'value': ['A', 'B', 'C']}        }        """        query_parts = []        for column, condition in conditions_dict.items():            operator = condition['operator']            value = condition['value']            if operator == 'in':                if isinstance(value, list):                    value_str = str(tuple(value))                    query_parts.append(f"{column}{operator}{value_str}")            elif isinstance(value, str):                query_parts.append(f"{column}{operator} '{value}'")            else:                query_parts.append(f"{column}{operator}{value}")        query_str = " and ".join(query_parts)        return self.df.query(query_str)    def complex_conditions(self):        """复杂条件组合示例"""        # 多条件组合        results = self.df[            (self.df['地区'].isin(['华东''华北'])) &            (self.df['消费金额'].between(500010000)) &            (~self.df['客户姓名'].str.contains('测试')) &            (self.df['最后购买日期'] > '2023-06-01')        ]        return results    def group_filter(self):        """分组筛选:找出每个地区消费金额前10的客户"""        grouped = self.df.groupby('地区')        # 方法1:使用groupby + nlargest        top_customers = grouped.apply(            lambda x: x.nlargest(10'消费金额')        ).reset_index(drop=True)        # 方法2:使用排序 + 分组标记        self.df['rank'] = self.df.groupby('地区')['消费金额'].rank(            method='first', ascending=False        )        top_customers = self.df[self.df['rank'] <= 10]        return top_customers

四、VBA与Python对比分析

4.1 性能对比

指标

Excel VBA

Python (Pandas)

10万数据处理时间

2-3秒

0.1-0.3秒

内存占用

较高

较低

大数据支持

有限(百万级)

优秀(千万级)

并行处理

不支持

支持

4.2 功能特性对比

Excel VBA优势:

  • 与Office套件无缝集成

  • 无需额外环境配置

  • 适合非技术人员使用

  • 实时交互性强

Python优势:

  • 处理能力更强

  • 丰富的第三方库支持

  • 更适合复杂数据处理

  • 更好的代码可维护性

  • 支持机器学习扩展

4.3 选择建议

  1. 选择Excel VBA的情况:

    • 数据量较小(<50万行)

    • 需要与Excel深度交互

    • 用户不具备编程基础

    • 需要快速原型开发

  2. 选择Python的情况:

    • 处理大数据量

    • 需要复杂数据处理

    • 需要自动化调度

    • 需要与其他系统集成

    • 需要扩展机器学习功能

五、实际应用建议

5.1 混合使用方案

在实际工作中,可以采用VBA和Python混合的方案:

# Python端:提供数据处理服务from flask import Flask, request, jsonifyimport pandas as pdapp = Flask(__name__)@app.route('/filter', methods=['POST'])def filter_data():    data = request.json    df = pd.DataFrame(data['records'])    # 执行筛选    results = df.query(        f"地区 == '{data['region']}' and 消费金额 > {data['min_amount']}"    )    return jsonify(results.to_dict('records'))# VBA端:调用Python服务Sub CallPythonAPI()    Dim http As Object, json As String    Set http = CreateObject("MSXML2.XMLHTTP")    '准备数据    Dim data As String    data = "{""region"":""华东"",""min_amount"":5000,""records"":[...]}"    '调用API    http.Open "POST""http://localhost:5000/filter", False    http.setRequestHeader "Content-Type""application/json"    http.send data    '处理返回结果    Dim response As String    response = http.responseText    '...解析并显示结果...End Sub

5.2 最佳实践

  1. 数据预处理

    • 清理无效数据

    • 统一数据格式

    • 建立数据索引

  2. 代码优化

    • 使用合适的数据结构

    • 避免循环操作

    • 利用向量化计算

  3. 错误处理

    • 添加数据验证

    • 异常捕获处理

    • 日志记录

  4. 用户界面

    • 提供友好的交互界面

    • 实时进度显示

    • 结果预览功能

六、技术选择题

  1. 在Excel VBA中,使用AdvancedFilter方法时,哪个参数用于指定筛选条件所在的区域?

    A) Action

    B) CriteriaRange

    C) CopyToRange

    D) Unique

  2. 在Pandas中,要筛选出"地区"列为"华东"且"消费金额"大于5000的记录,以下哪种写法是正确的?

    A) df[(df['地区']=='华东') && (df['消费金额']>5000)]

    B) df[(df['地区']=='华东') & (df['消费金额']>5000)]

    C) df[(df['地区']=='华东') and (df['消费金额']>5000)]

    D) df.query("地区 = '华东' and 消费金额 > 5000")

  3. 关于Excel VBA的AutoFilter和AdvancedFilter,以下说法错误的是?

    A) AutoFilter适合简单的多条件筛选

    B) AdvancedFilter支持更复杂的条件组合

    C) AdvancedFilter可以直接将结果输出到其他位置

    D) AutoFilter不支持"或"条件

  4. 在处理10万行以上的数据筛选时,Python相比VBA的主要优势不包括:

    A) 更快的执行速度

    B) 更低的内存占用

    C) 更好的Excel集成

    D) 更强的扩展性

  5. 在使用Pandas进行数据筛选时,为了提高性能,以下哪种做法是错误的?

    A) 对常用筛选字段建立索引

    B) 使用向量化操作代替循环

    C) 将字符串比较改为正则表达式匹配

    D) 使用query方法代替布尔索引


答案:

  1. B

  2. B

  3. D

  4. C

  5. C

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-12 22:42:05 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/614881.html
  2. 运行时间 : 0.228618s [ 吞吐率:4.37req/s ] 内存消耗:4,791.51kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ce8bed998a8bf0bd7ccbd43cc7dccbf9
  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.000926s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001218s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000595s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000624s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001142s ]
  6. SELECT * FROM `set` [ RunTime:0.000562s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001326s ]
  8. SELECT * FROM `article` WHERE `id` = 614881 LIMIT 1 [ RunTime:0.001064s ]
  9. UPDATE `article` SET `lasttime` = 1778596925 WHERE `id` = 614881 [ RunTime:0.001231s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000587s ]
  11. SELECT * FROM `article` WHERE `id` < 614881 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000955s ]
  12. SELECT * FROM `article` WHERE `id` > 614881 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001184s ]
  13. SELECT * FROM `article` WHERE `id` < 614881 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002725s ]
  14. SELECT * FROM `article` WHERE `id` < 614881 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002189s ]
  15. SELECT * FROM `article` WHERE `id` < 614881 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004942s ]
0.232452s