当前位置:首页>Excel>Excel如何完美导入MySQL

Excel如何完美导入MySQL

  • 2026-03-30 14:53:51
Excel如何完美导入MySQL

快速将Excel数据导入MySQL有多种方法,根据数据量和技术背景选择最合适的方式:

🚀 最快速的方法(推荐)

1. 使用MySQL Workbench(图形化工具,适合中小数据量)

步骤:

  1. 将Excel文件另存为CSV格式(文件 → 另存为 → CSV (逗号分隔))

  2. 关键编码设置:不要选UTF-8,选择“CSV (MS-DOS)”或“CSV (逗号分隔)”并使用ANSI编码(避免中文乱码)

  3. 打开MySQL Workbench,连接数据库

  4. 右键目标数据库或表 → 选择“Table Data Import Wizard”

  5. 选择CSV文件 → 配置字段映射 → 执行导入

优点:无需编程,界面直观,适合一次性导入

耗时:几千至数万条数据通常在几分钟内完成

2. 使用Python脚本(适合批量/自动化处理)

import pandas as pdfrom sqlalchemy import create_engine# 读取Exceldf = pd.read_excel('your_file.xlsx', sheet_name='Sheet1')# 连接MySQLengine = create_engine('mysql+pymysql://用户名:密码@主机名/数据库名')# 导入数据(if_exists='replace'替换表,'append'追加数据)df.to_sql('表名', con=engine, if_exists='replace', index=False)

安装依赖pip install pandas pymysql sqlalchemy openpyxl

优点:可处理复杂数据清洗,支持自动化调度

耗时:百万级数据可在几分钟内完成

⚡ 其他高效方法

3. 使用LOAD DATA INFILE命令(最快的大数据导入)

LOAD DATA LOCAL INFILE '/path/to/data.csv'INTO TABLE your_tableFIELDS TERMINATED BY ','ENCLOSED BY '"'LINES TERMINATED BY '\n'IGNORE 1 ROWS;

前提:需要启用local_infile参数:SET GLOBAL local_infile = 1;

速度:这是MySQL原生批量导入方式,性能最优

4. 使用第三方工具

  • Navicat:导入向导支持直接导入Excel文件,无需转换CSV

  • DBeaver:开源数据库工具,支持多种数据源导入

  • MySQL for Excel插件:在Excel中直接操作MySQL数据

5. 开源专用工具

  • Excel转MySQL神器:带AI智能字段匹配,支持批量导入和唯一索引处理

  • ExcelToDatabase:GitHub开源项目,提供GUI界面

📊 方法对比与选择建议

方法

适合场景

数据量

技术要求

速度评级

MySQL Workbench

一次性导入,中小数据

<10万行

⭐⭐⭐⭐

Python脚本

定期批量导入,需清洗

百万级

⭐⭐⭐⭐⭐

LOAD DATA INFILE

超大数据库迁移

千万级+

中高

⭐⭐⭐⭐⭐⭐

Navicat等工具

日常管理,频繁操作

<50万行

⭐⭐⭐⭐

专用开源工具

复杂字段映射

任意

⭐⭐⭐⭐

⚠️ 重要注意事项

  1. 数据预处理:确保Excel列名与MySQL字段名匹配,删除空行和特殊字符

  2. 编码问题:中文字符建议使用GBK/GB2312编码而非UTF-8导入MySQL Workbench

  3. 数据类型:检查数字、日期等特殊字段的格式一致性

  4. 备份数据:导入前备份目标表,特别是使用replace模式时

  5. 分批导入:超过10万行建议分批进行,避免超时或内存不足

🎯 最快方案推荐

  • 紧急少量数据:用MySQL Workbench + CSV转换(10分钟内完成)

  • 定期批量导入:Python脚本自动化(配置好后每次1-2分钟)

  • 超大数据迁移:LOAD DATA INFILE命令(性能最优)

如果你能提供具体数据量(行数、列数)和技术背景(是否熟悉编程),我可以给出更针对性的建议。

导入过程中有日期格式等问题,下面的脚本给出了解决办法:这里是为您设计的Python数据清洗与格式校验脚本,可在Excel导入MySQL前自动处理常见数据问题。
import pandas as pdimport numpy as npfrom datetime import datetimeimport reimport warningsfrom sqlalchemy import create_enginefrom sqlalchemy.exc import SQLAlchemyErrorwarnings.filterwarnings('ignore')class ExcelDataCleaner:    """    Excel数据清洗与校验工具类    功能:读取Excel文件,进行数据清洗、格式校验,然后导入MySQL数据库    """    def __init__(self, excel_path, sheet_name=0):        """        初始化清洗器        参数:        excel_path: Excel文件路径        sheet_name: 工作表名称或索引,默认为第一个工作表        """        self.excel_path = excel_path        self.sheet_name = sheet_name        self.df = None        self.cleaning_log = []    def load_excel(self):        """加载Excel文件"""        try:            self.df = pd.read_excel(self.excel_path, sheet_name=self.sheet_name)            self.cleaning_log.append(f"✓ 成功加载Excel文件: {self.excel_path}")            self.cleaning_log.append(f"✓ 数据形状: {self.df.shape[0]}行 × {self.df.shape[1]}列")            return True        except Exception as e:            self.cleaning_log.append(f"✗ 加载Excel失败: {str(e)}")            return False    def clean_column_names(self):        """清洗列名:移除空格、特殊字符,统一命名格式"""        if self.df is None:            return        original_columns = self.df.columns.tolist()        # 定义列名清洗规则        new_columns = []        for col in original_columns:            # 转换为字符串            col_str = str(col)            # 移除前后空格            col_str = col_str.strip()            # 替换特殊字符和空格为下划线            col_str = re.sub(r'[^\w]''_', col_str)            # 移除连续的下划线            col_str = re.sub(r'_+''_', col_str)            # 移除开头和结尾的下划线            col_str = col_str.strip('_')            # 转换为小写(可选,根据数据库规范调整)            col_str = col_str.lower()            new_columns.append(col_str)        self.df.columns = new_columns        self.cleaning_log.append(f"✓ 列名已标准化: {dict(zip(original_columns, new_columns))}")    def handle_missing_values(self, strategy='fill', fill_value=None, numeric_fill=0, text_fill=''):        """        处理缺失值        参数:        strategy: 处理策略 'fill'填充, 'drop'删除, 'ignore'忽略        fill_value: 指定填充值(优先级最高)        numeric_fill: 数值型列填充值        text_fill: 文本型列填充值        """        if self.df is None:            return        initial_rows = len(self.df)        if strategy == 'drop':            # 删除包含缺失值的行            self.df = self.df.dropna()            dropped_rows = initial_rows - len(self.df)            self.cleaning_log.append(f"✓ 删除包含缺失值的行: {dropped_rows}行")        elif strategy == 'fill':            # 按列类型填充缺失值            for col in self.df.columns:                if self.df[col].dtype in ['int64''float64''int32''float32']:                    # 数值型列                    fill_val = fill_value if fill_value is not None else numeric_fill                    missing_count = self.df[col].isnull().sum()                    if missing_count > 0:                        self.df[col].fillna(fill_val, inplace=True)                        self.cleaning_log.append(f"✓ 列 '{col}': 填充{missing_count}个缺失值为{fill_val}")                else:                    # 文本或其他类型列                    fill_val = fill_value if fill_value is not None else text_fill                    missing_count = self.df[col].isnull().sum()                    if missing_count > 0:                        self.df[col].fillna(fill_val, inplace=True)                        self.cleaning_log.append(f"✓ 列 '{col}': 填充{missing_count}个缺失值为'{fill_val}'")    def remove_duplicates(self, subset=None, keep='first'):        """        删除重复行        参数:        subset: 基于哪些列判断重复,None表示所有列        keep: 'first'保留第一个, 'last'保留最后一个, False删除所有重复        """        if self.df is None:            return        initial_rows = len(self.df)        self.df = self.df.drop_duplicates(subset=subset, keep=keep)        removed_rows = initial_rows - len(self.df)        if removed_rows > 0:            self.cleaning_log.append(f"✓ 删除重复行: {removed_rows}行")        else:            self.cleaning_log.append(f"✓ 未发现重复行")    def trim_string_columns(self):        """去除字符串列的前后空格"""        if self.df is None:            return        trimmed_cols = []        for col in self.df.columns:            if self.df[col].dtype == 'object':                # 统计处理前后的变化                initial_sample = self.df[col].head(5).tolist() if len(self.df) > 0 else []                # 去除前后空格                self.df[col] = self.df[col].astype(str).str.strip()                trimmed_cols.append(col)        if trimmed_cols:            self.cleaning_log.append(f"✓ 去除字符串列空格: {trimmed_cols}")    def convert_date_columns(self, date_columns=None, date_format=None):        """        转换日期列格式        参数:        date_columns: 指定为日期列的列名列表,None自动检测        date_format: 指定日期格式,如'%Y-%m-%d'        """        if self.df is None:            return        converted_cols = []        # 如果未指定列,尝试自动检测日期列        if date_columns is None:            # 通过列名和数据类型检测            date_pattern = re.compile(r'(date|time|生日|日期|时间)', re.IGNORECASE)            potential_date_cols = [col for col in self.df.columns if date_pattern.search(col)]        else:            potential_date_cols = date_columns        for col in potential_date_cols:            if col in self.df.columns:                try:                    if date_format:                        # 使用指定格式转换                        self.df[col] = pd.to_datetime(self.df[col], format=date_format, errors='coerce')                    else:                        # 自动推断格式                        self.df[col] = pd.to_datetime(self.df[col], errors='coerce')                    # 检查转换成功了多少行                    success_count = self.df[col].notna().sum()                    total_count = len(self.df)                    if success_count > 0:                        converted_cols.append(col)                        self.cleaning_log.append(f"✓ 列 '{col}': 成功转换{success_count}/{total_count}行为日期格式")                except Exception as e:                    self.cleaning_log.append(f"✗ 列 '{col}'日期转换失败: {str(e)}")        if converted_cols:            self.cleaning_log.append(f"✓ 已转换日期列: {converted_cols}")    def validate_numeric_columns(self, numeric_columns=None, min_val=None, max_val=None):        """        验证数值列的有效性        参数:        numeric_columns: 数值列名列表,None自动检测        min_val: 最小值限制        max_val: 最大值限制        """        if self.df is None:            return        validation_results = []        # 自动检测数值列        if numeric_columns is None:            numeric_cols = self.df.select_dtypes(include=[np.number]).columns.tolist()        else:            numeric_cols = [col for col in numeric_columns if col in self.df.columns]        for col in numeric_cols:            # 检查非数值            non_numeric = pd.to_numeric(self.df[col], errors='coerce').isna().sum()            # 检查范围            if min_val is not None:                below_min = (self.df[col] < min_val).sum()            else:                below_min = 0            if max_val is not None:                above_max = (self.df[col] > max_val).sum()            else:                above_max = 0            if non_numeric > 0 or below_min > 0 or above_max > 0:                validation_results.append({                    'column': col,                    'non_numeric'int(non_numeric),                    'below_min'int(below_min) if min_val is not None else None,                    'above_max'int(above_max) if max_val is not None else None                })        if validation_results:            self.cleaning_log.append("⚠ 数值列验证发现以下问题:")            for result in validation_results:                issues = []                if result['non_numeric'] > 0:                    issues.append(f"{result['non_numeric']}个非数值")                if result.get('below_min'0) > 0:                    issues.append(f"{result['below_min']}个小于最小值")                if result.get('above_max'0) > 0:                    issues.append(f"{result['above_max']}个大于最大值")                if issues:                    self.cleaning_log.append(f"  列 '{result['column']}': {', '.join(issues)}")    def clean_all(self, cleaning_steps=None):        """        执行完整的清洗流程        参数:        cleaning_steps: 指定清洗步骤列表,None执行所有步骤        """        default_steps = [            'clean_column_names',            'handle_missing_values',            'remove_duplicates',            'trim_string_columns',            'convert_date_columns',            'validate_numeric_columns'        ]        steps_to_execute = cleaning_steps if cleaning_steps is not None else default_steps        self.cleaning_log.append("=" * 50)        self.cleaning_log.append("开始数据清洗流程")        self.cleaning_log.append("=" * 50)        for step in steps_to_execute:            if hasattr(self, step):                try:                    # 调用对应的清洗方法                    if step == 'handle_missing_values':                        getattr(self, step)('fill', numeric_fill=0, text_fill='未知')                    elif step == 'remove_duplicates':                        getattr(self, step)(keep='first')                    elif step == 'convert_date_columns':                        getattr(self, step)(date_format='%Y-%m-%d')                    elif step == 'validate_numeric_columns':                        getattr(self, step)(min_val=0, max_val=1000000)                    else:                        getattr(self, step)()                except Exception as e:                    self.cleaning_log.append(f"✗ 步骤 '{step}' 执行失败: {str(e)}")        self.cleaning_log.append("=" * 50)        self.cleaning_log.append(f"清洗完成,剩余数据: {len(self.df)}行 × {len(self.df.columns)}列")        self.cleaning_log.append("=" * 50)        return self.df    def export_to_mysql(self, db_url, table_name, if_exists='replace', index=False):        """        导出清洗后的数据到MySQL        参数:        db_url: 数据库连接URL,格式: mysql+pymysql://用户名:密码@主机/数据库名        table_name: 目标表名        if_exists: 'fail', 'replace', 'append'        index: 是否导出索引        """        if self.df is None or self.df.empty:            self.cleaning_log.append("✗ 无数据可导出")            return False        try:            # 创建数据库引擎            engine = create_engine(db_url)            # 导出到MySQL            self.df.to_sql(                table_name,                 con=engine,                 if_exists=if_exists,                 index=index,                chunksize=1000            )            self.cleaning_log.append(f"✓ 成功导出数据到MySQL表: {table_name}")            self.cleaning_log.append(f"✓ 导出模式: {if_exists}")            return True        except SQLAlchemyError as e:            self.cleaning_log.append(f"✗ MySQL导出失败: {str(e)}")            return False        except Exception as e:            self.cleaning_log.append(f"✗ 导出过程出错: {str(e)}")            return False    def save_to_csv(self, output_path):        """保存清洗后的数据到CSV文件"""        if self.df is None or self.df.empty:            return False        try:            self.df.to_csv(output_path, index=False, encoding='utf-8-sig')            self.cleaning_log.append(f"✓ 数据已保存到: {output_path}")            return True        except Exception as e:            self.cleaning_log.append(f"✗ 保存CSV失败: {str(e)}")            return False    def get_cleaning_log(self):        """获取清洗日志"""        return "\n".join(self.cleaning_log)    def get_data_summary(self):        """获取数据摘要"""        if self.df is None:            return "无数据"        summary = []        summary.append("数据摘要:")        summary.append(f"- 行数: {len(self.df)}")        summary.append(f"- 列数: {len(self.df.columns)}")        summary.append(f"- 列名: {list(self.df.columns)}")        summary.append("\n数据类型分布:")        for dtype, count in self.df.dtypes.value_counts().items():            summary.append(f"- {dtype}{count}列")        return "\n".join(summary)def main():    """主函数:演示数据清洗流程"""    print("Excel数据清洗与MySQL导入演示")    print("=" * 50)    # 1. 创建示例数据(模拟从Excel读取)    # 在实际使用中,这里应该从Excel文件读取    sample_data = {        ' 用户ID ': ['U001''U002''U003''U004''U005''U001'None],        '用户姓名': ['张三  ''李四''王五''赵六''孙七''张三''周八'],        '年龄': [25303528422529],        '注册日期': ['2023-01-15''2023-02-20''无效日期''2023-03-10''2023-04-05''2023-01-15''2023-05-01'],        '消费金额': [1500.502300.01800.75950.253200.01500.501200.0],        '城市': ['北京''上海''广州''深圳''杭州''北京'None],        '电话号码': ['13800138000''13900139000''无效电话''13600136000''13700137000''13800138000''13500135000']    }    # 创建DataFrame模拟Excel数据    df_sample = pd.DataFrame(sample_data)    print("原始数据示例:")    print(df_sample)    print()    # 2. 创建清洗器实例    # 注意:实际使用时,应该从Excel文件加载    # cleaner = ExcelDataCleaner('your_data.xlsx')    # 这里我们直接使用示例数据    cleaner = ExcelDataCleaner('示例数据.xlsx')    cleaner.df = df_sample.copy()    # 3. 执行完整清洗流程    cleaned_df = cleaner.clean_all()    # 4. 显示清洗日志    print("清洗日志:")    print(cleaner.get_cleaning_log())    print()    # 5. 显示清洗后的数据    print("清洗后数据:")    print(cleaned_df)    print()    # 6. 显示数据摘要    print(cleaner.get_data_summary())    print()    # 7. 保存到CSV(演示用)    csv_path = 'cleaned_data.csv'    if cleaner.save_to_csv(csv_path):        print(f"数据已保存到: {csv_path}")    # 8. 导出到MySQL(需要配置数据库连接)    # 取消注释以下代码并配置数据库连接信息以实际导出到MySQL    """    db_url = 'mysql+pymysql://username:password@localhost/your_database'    table_name = 'cleaned_user_data'    if cleaner.export_to_mysql(db_url, table_name, if_exists='replace'):        print(f"数据已成功导出到MySQL表: {table_name}")    else:        print("MySQL导出失败,请检查数据库连接配置")    """    print("\n提示: 要导出到MySQL,请取消注释代码中的数据库连接部分并配置正确的连接信息。")    return cleanerif __name__ == "__main__":    # 运行演示    cleaner = main()    # 使用示例:单独调用清洗步骤    print("\n" + "="*50)    print("高级用法示例: 自定义清洗流程")    print("="*50)    # 重新加载示例数据    cleaner2 = ExcelDataCleaner('示例数据.xlsx')    cleaner2.df = pd.DataFrame(sample_data)    # 自定义清洗步骤    print("\n1. 仅清洗列名和去重:")    cleaner2.clean_column_names()    cleaner2.remove_duplicates()    print(f"清洗后列名: {list(cleaner2.df.columns)}")    print(f"剩余行数: {len(cleaner2.df)}")    print("\n2. 处理缺失值(指定策略):")    cleaner3 = ExcelDataCleaner('示例数据.xlsx')    cleaner3.df = pd.DataFrame(sample_data)    cleaner3.handle_missing_values(strategy='fill', numeric_fill=-1, text_fill='暂无')    print(f"缺失值处理后: {len(cleaner3.df)}行")    print("\n3. 日期格式转换(指定格式):")    cleaner4 = ExcelDataCleaner('示例数据.xlsx')    cleaner4.df = pd.DataFrame(sample_data)    cleaner4.convert_date_columns(date_columns=['注册日期'], date_format='%Y-%m-%d')    print(f"日期列数据类型: {cleaner4.df['注册日期'].dtype}")

关键功能说明

🔧 核心清洗功能

  1. 列名标准化:自动处理列名中的空格、特殊字符,统一命名规范

  2. 缺失值处理:支持删除或智能填充(数值型/文本型不同处理)

  3. 重复数据删除:基于指定列或全部列删除重复记录

  4. 字符串清理:自动去除文本字段前后空格

  5. 日期格式转换:支持自动检测或指定格式转换日期列

  6. 数值校验:检查数值范围、非数值异常等

📊 数据校验能力

  • 自动检测数据类型分布

  • 验证数值范围有效性

  • 日期格式合规性检查

  • 数据完整性统计

🗄️ 导出选项

  1. MySQL导出:通过SQLAlchemy直接导入MySQL数据库

  2. CSV保存:保存清洗后数据为CSV文件

  3. 灵活配置:支持追加或替换模式导入

⚡ 性能特点

  • 时间复杂度:O(n) 线性复杂度,适合处理大规模数据

  • 内存效率:Pandas优化内存使用,支持分块处理

  • 可扩展性:模块化设计,方便添加自定义清洗规则

🔄 使用建议

  1. 首次使用:运行main()函数查看完整清洗流程演示

  2. 自定义清洗:创建实例后按需调用单个清洗方法

  3. 批量处理:可封装为函数处理多个Excel文件

  4. 生产部署:建议添加异常重试、日志记录和进度提示

脚本已包含完整的测试用例和示例数据,您可以直接运行查看效果,然后根据实际数据调整清洗参数。

最新文章

随机文章

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