乐于分享
好东西不私藏

ERPNext 会计模块分析文档

ERPNext 会计模块分析文档

一、概述

ERPNext 的会计模块基于复式记账法树形账户结构(NestedSet),实现了完整的财务核算功能。核心设计理念是通过 GL Entry(总账凭证)记录所有交易,支持多维度分析和实时余额查询。

模块定位

┌─────────────────────────────────────────────────────────────────────┐│                     ERPNext 会计模块                               │├─────────────────────────────────────────────────────────────────────┤│  基础架构层:Account(会计科目)、Chart of Accounts                  ││  会计分录层:GL Entry(总账凭证)、Journal Entry(日记账)           ││  应收应付层:Sales Invoice、Purchase Invoice、Payment Entry          ││  税务层:Tax Rule、Tax Category、Taxes & Charges                    ││  期末处理层:Period Closing Voucher、Account Closing Balance        ││  报表层:Balance Sheet、Profit & Loss、Trial Balance                ││  维度层:Accounting Dimension(会计维度)、Cost Center、Project      │└─────────────────────────────────────────────────────────────────────┘

二、核心数据模型

2.1 Account(会计科目)

表结构

字段
类型
说明
name
VARCHAR(140)
科目代码(主键)
account_name
VARCHAR(140)
科目名称
root_type
Select
根类型(Asset/Liability/Income/Expense/Equity)
report_type
Select
报表类型(Balance Sheet/Profit and Loss)
account_type
Select
账户类型(Bank/Cash/Receivable/Payable/Stock等)
is_group
Check
是否为组科目
parent_account
Link
父级科目
company
Link
所属公司
lft
 / rgt
Int
NestedSet 左/右值
account_currency
Link
账户币种
frozen_account
Check
是否冻结

账户类型说明

account_type: DF.Literal[    "",    "Bank",                # 银行账户    "Cash",                # 现金账户    "Receivable",          # 应收款    "Payable",             # 应付款    "Stock",               # 存货科目    "Cost of Goods Sold",  # 主营业务成本    "Income Account",      # 收入科目    "Expense Account",     # 费用科目    "Stock Received But Not Billed",  # 暂估负债    "Stock Delivered But Not Billed"# 发出商品    "Stock Adjustment",    # 库存调整    "Fixed Asset",         # 固定资产    "Current Asset",       # 流动资产    "Current Liability",   # 流动负债    "Equity",              # 权益    "Tax",                 # 税费科目]

树形结构

资产 (Asset)├── 流动资产 (Current Asset)│   ├── 现金 (Cash)│   ├── 银行存款 (Bank)│   └── 应收账款 (Receivable)├── 固定资产 (Fixed Asset)│   └── 设备 (Equipment)└── 存货 (Stock)    └── 原材料 (Raw Material)

NestedSet 实现

# 父级科目查询# lft <= 当前科目的lft AND rgt >= 当前科目的rgt# 子级科目查询# lft >= 当前科目的lft AND rgt <= 当前科目的rgt

2.2 Journal Entry(日记账)

主表结构

字段
类型
说明
name
VARCHAR(140)
凭证编号(ACC-JV-.YYYY.-序列)
company
Link
公司
posting_date
Date
过账日期
voucher_type
Select
凭证类型(见下表)
is_opening
Select
是否期初(Yes/No)
is_system_generated
Check
是否系统生成
total_debit
Currency
借方合计
total_credit
Currency
贷方合计
difference
Currency
借贷差额(应为0)
multi_currency
Check
是否多币种
finance_book
Link
账簿

凭证类型

类型
说明
Journal Entry
普通日记账
Inter Company Journal Entry
公司间日记账
Bank Entry
银行凭证
Cash Entry
现金凭证
Credit Card Entry
信用卡凭证
Debit Note
借方通知单
Credit Note
贷方通知单
Contra Entry
转账凭证
Excise Entry
消费税凭证
Write Off Entry
坏账核销凭证
Opening Entry
期初余额凭证
Depreciation Entry
折旧凭证
Asset Disposal
资产处置凭证
Periodic Accounting Entry
定期会计凭证
Exchange Rate Revaluation
汇率重估凭证
Exchange Gain Or Loss
汇兑损益凭证
Deferred Revenue
递延收入凭证
Deferred Expense
递延费用凭证

子表:Journal Entry Account

字段
类型
说明
parent
Data
主表名称(Journal Entry编号)
parenttype
Data
主表类型(Journal Entry)
parentfield
Data
子表字段名(accounts)
account
Link
会计科目
account_currency
Link
账户币种
debit
Currency
借方金额(公司币种)
debit_in_account_currency
Currency
借方金额(账户币种)
credit
Currency
贷方金额(公司币种)
credit_in_account_currency
Currency
贷方金额(账户币种)
exchange_rate
Float
汇率
party_type
Link
交易方类型(Customer/Supplier/Employee)
party
DynamicLink
交易方
cost_center
Link
成本中心
project
Link
项目
is_advance
Select
是否预付款(Yes/No)
reference_type
Select
引用类型(Sales Invoice/Purchase Invoice等)
reference_name
DynamicLink
引用单据编号
against_account
Text
对方科目

核心验证逻辑

def validate(self):    # 1. 设置期初标志    if self.voucher_type == "Opening Entry":        self.is_opening = "Yes"    # 2. 验证交易方    self.validate_party()    # 3. 验证预付款    self.validate_entries_for_advance()    # 4. 验证多币种    self.validate_multi_currency()    # 5. 设置公司币种金额    self.set_amounts_in_company_currency()    # 6. 验证借贷平衡    self.validate_debit_credit_amount()    # 7. 设置合计金额    self.set_total_debit_credit()    # 8. 验证库存科目    self.validate_stock_accounts()    # 9. 验证引用单据    JournalEntryReferenceValidator(self).validate()    # 10. 设置对方科目    self.set_against_account()    # 11. 验证会计维度    self.validate_company_in_accounting_dimension()    # 12. 验证税务代扣    JournalTaxWithholding(self).on_validate()

借贷平衡验证

def validate_debit_credit_amount(self):    if not (self.multi_currency or self.is_opening == "Yes"):        if flt(self.total_debit) != flt(self.total_credit):            frappe.throw(                _("Total Debit ({0}) must equal Total Credit ({1})").format(                    fmt_money(self.total_debit), fmt_money(self.total_credit)                )            )

提交时生成 GL Entry

def on_submit(self):    # 创建GL Entry    from erpnext.accounts.doctype.gl_entry.gl_entry import make_gl_entries    gl_entries = []    for d in self.accounts:        gl_entry = {            "account": d.account,            "party_type": d.party_type,            "party": d.party,            "cost_center": d.cost_center,            "project": d.project,            "debit": flt(d.debit, self.precision("debit")),            "credit": flt(d.credit, self.precision("credit")),            # ... 其他字段        }        gl_entries.append(gl_entry)    make_gl_entries(gl_entries, cancel=False)

2.3 GL Entry(总账凭证)

表结构

字段
类型
说明
name
VARCHAR(140)
主键(自动生成hash,后台重命名)
account
Link
会计科目
account_currency
Link
账户币种
debit
Currency
借方金额(公司币种)
credit
Currency
贷方金额(公司币种)
debit_in_account_currency
Currency
借方金额(账户币种)
credit_in_account_currency
Currency
贷方金额(账户币种)
debit_in_transaction_currency
Currency
借方金额(交易币种)
credit_in_transaction_currency
Currency
贷方金额(交易币种)
party_type
Link
交易方类型(Customer/Supplier/Employee)
party
DynamicLink
交易方
cost_center
Link
成本中心
project
Link
项目
voucher_type
Link
凭证类型(Journal Entry/Sales Invoice等)
voucher_no
DynamicLink
凭证编号
voucher_detail_no
Data
凭证行号
against
Text
对方科目摘要
against_voucher_type
Link
对方凭证类型
against_voucher
DynamicLink
对方凭证编号
posting_date
Date
过账日期
transaction_date
Date
交易日期
transaction_currency
Link
交易币种
transaction_exchange_rate
Float
交易汇率
reporting_currency_exchange_rate
Float
报告币种汇率
fiscal_year
Link
会计年度
finance_book
Link
账簿
is_opening
Select
是否期初(Yes/No)
is_cancelled
Check
是否已取消
is_advance
Select
是否预付款(Yes/No)
due_date
Date
到期日
remarks
Text
备注

关键字段说明

多币种字段关系

公司币种金额 (debit/credit)     ← 账户币种金额 (debit_in_account_currency/credit_in_account_currency)         ← 交易币种金额 (debit_in_transaction_currency/credit_in_transaction_currency)

凭证关联

voucher_type + voucher_no → 原始单据(如Journal Entry、Sales Invoice)against_voucher_type + against_voucher → 对方单据(如付款关联的发票)

核心验证

def validate(self):    self.flags.ignore_submit_comment = True    # 1. 设置会计年度    self.validate_and_set_fiscal_year()    # 2. 损益类科目必须有成本中心    self.pl_must_have_cost_center()    # 3. 检查必填字段    self.check_mandatory()    # 4. 验证成本中心    self.validate_cost_center()    # 5. 验证损益类科目    self.check_pl_account()    # 6. 验证交易方    self.validate_party()    # 7. 验证币种    self.validate_currency()    # 8. 设置报告币种金额    self.set_amount_in_reporting_currency()

损益类科目成本中心验证

def pl_must_have_cost_center(self):    if self.cost_center or self.voucher_type == "Period Closing Voucher":        return    report_type = frappe.get_cached_value("Account"self.account, "report_type")    if report_type == "Profit and Loss":        frappe.throw(            _("{0} {1}: Cost Center is required for 'Profit and Loss' account {2}.")            .format(self.voucher_type, self.voucher_no, self.account)        )

交易方验证

def check_mandatory(self):    mandatory = ["account""voucher_type""voucher_no""company"]    for k in mandatory:        if not self.get(k):            frappe.throw(_("{0} is required").format(_(self.meta.get_label(k))))    # 应收/应付科目必须有交易方    account_type = frappe.get_cached_value("Account"self.account, "account_type")    if not self.is_cancelled and not (self.party_type and self.party):        if account_type == "Receivable":            frappe.throw(_("{0} {1}: Customer is required against Receivable account {2}"))        elif account_type == "Payable":            frappe.throw(_("{0} {1}: Supplier is required against Payable account {2}"))

更新未结金额

def on_update(self):    if self.voucher_type == "Journal Entry" and self.against_voucher_type in [        "Journal Entry""Sales Invoice""Purchase Invoice""Fees"    ] and self.against_voucher and self.flags.update_outstanding == "Yes":        update_outstanding_amt(            self.account,            self.party_type,            self.party,            self.against_voucher_type,            self.against_voucher,        )

2.4 会计维度(Accounting Dimension)

设计理念

会计维度允许用户定义自定义分析维度(如部门、区域、项目等),这些维度会自动添加到相关单据和 GL Entry 中,实现精细化的财务分析。

核心思想:动态扩展分析维度,无需修改代码即可添加新的分析维度。

表结构

Accounting Dimension(主表)

字段
类型
说明
name
VARCHAR(140)
主键(自动生成)
document_type
Link
引用的 DocType(如 Department、Territory)
fieldname
Data
字段名(自动生成,如 department)
label
Data
显示标签(自动生成,如 Department)
disabled
Check
是否禁用

Accounting Dimension Detail(子表)

字段
类型
说明
company
Link
公司
default_value
Link
默认值(可选)

工作原理

class AccountingDimension(Document):    def on_update(self):        # 异步在所有相关DocType中创建自定义字段        frappe.enqueue(            make_dimension_in_accounting_doctypes,             doc=self            queue="long"            enqueue_after_commit=True        )    def on_trash(self):        # 删除所有相关DocType中的自定义字段        frappe.enqueue(            delete_accounting_dimension,             doc=self            queue="long"            enqueue_after_commit=True        )

创建自定义字段的逻辑

def make_dimension_in_accounting_doctypes(doc, doclist=None):    if not doclist:        doclist = get_doctypes_with_dimensions()  # 获取所有需要添加维度的DocType    for doctype in doclist:        df = {            "fieldname": doc.fieldname,            "label": doc.label,            "fieldtype""Link",            "options": doc.document_type,            "insert_after""accounting_dimensions_section",            "owner""Administrator",            "allow_on_submit"1 if doctype in repostable_doctypes else 0,        }        meta = frappe.get_meta(doctype, cached=False)        fieldnames = [d.fieldname for d in meta.get("fields")]        # 如果字段不存在,则创建自定义字段        if df["fieldname"not in fieldnames:            create_custom_field(doctype, df, ignore_validate=True)        frappe.clear_cache(doctype=doctype)

包含维度的 DocType

通过 hook 配置:

# hooks.pyaccounting_dimension_doctypes = [    "GL Entry",    "Journal Entry",    "Journal Entry Account",    "Sales Invoice",    "Purchase Invoice",    "Payment Entry",    "Stock Entry",    "Purchase Order",    "Sales Order",    "Delivery Note",    "Purchase Receipt",    # ... 更多]

内置维度

ERPNext 内置两个核心维度,不需要通过 Accounting Dimension 创建:

维度
DocType
说明
成本中心
Cost Center
费用归集和预算控制
项目
Project
收入/成本追踪

注意:项目和成本中心直接在 GL Entry 表中有固定字段,而自定义会计维度通过动态添加自定义字段实现。

字段名冲突处理

def validate_fieldname_conflict(self):    conflicting_doctypes = []    for doctype in get_doctypes_with_dimensions():        meta = frappe.get_meta(doctype, cached=False)        if any(f.fieldname == self.fieldname for f in meta.get("fields")):            conflicting_doctypes.append(doctype)    if conflicting_doctypes:        # 如果字段已存在,则GL Entry会使用现有字段的值作为维度值        frappe.msgprint(            _("Fieldname {0} already exists in {1}. GL Entries will use the existing field value."),            indicator="orange",        )

维度传递机制

维度值从单据传递到 GL Entry 的流程:

1. 用户在 Journal Entry 中填写维度值(如 department)2. Journal Entry 提交时,从子表行获取维度值3. 创建 GL Entry 时,将维度值写入对应的字段4. GL Entry 验证时检查损益类科目是否必填维度

代码实现(base_gl_composer.py):

def get_gl_dict(self, args):    gl_dict = frappe._dict({        "account"args.account,        "cost_center"args.cost_center,        "project"args.project,        # ... 其他字段    })    # 添加自定义会计维度    for dimension inget_accounting_dimensions():        if dimension.fieldname in args:            gl_dict[dimension.fieldname] = args[dimension.fieldname]    return gl_dict

维度验证规则

def validate_dimensions_for_pl_and_bs(self):    account_type = frappe.get_cached_value("Account"self.account, "report_type")    for dimension in get_checks_for_pl_and_bs_accounts():        if (            account_type == "Profit and Loss"            and self.company == dimension.company            and dimension.mandatory_for_pl            and not self.is_cancelled        ):            if not self.get(dimension.fieldname):                frappe.throw(_("{0} is mandatory for Profit and Loss account").format(dimension.label))

三、科目余额计算

3.1 get_balance_on 函数

函数签名

def get_balance_on(    account: str | None = None,    date: DateTimeLikeObject | None = None,    party_type: str | None = None,    party: str | None = None,    company: str | None = None,    in_account_currency: bool = True,    cost_center: str | None = None,    ignore_account_permission: bool = False,    account_type: str | None = None,    start_date: str | None = None,    finance_book: str | None = None,    include_default_fb_balances: bool = False,):

核心逻辑

def get_balance_on(...):    # 1. 构建查询条件    cond = ["is_cancelled=0"]    if start_date:        cond.append("posting_date >= %s" % frappe.db.escape(cstr(start_date)))    if date:        cond.append("posting_date <= %s" % frappe.db.escape(cstr(date)))    else:        date = nowdate()    # 2. 处理成本中心过滤(支持组成本中心)    if cost_center and report_type == "Profit and Loss":        cc = frappe.get_lazy_doc("Cost Center", cost_center)        if cc.is_group:            cond.append(                f"""exists (                    select 1 from `tabCost Center` cc                     where cc.name = gle.cost_center                    and cc.lft >= {cc.lft} and cc.rgt <= {cc.rgt}                )"""            )        else:            cond.append(f"""gle.cost_center = {frappe.db.escape(cost_center)} """)    # 3. 处理科目过滤(支持组科目)    if acc.is_group:        cond.append(            f"""exists (                select name from `tabAccount` ac                 where ac.name = gle.account                and ac.lft >= {acc.lft} and ac.rgt <= {acc.rgt}            )"""        )    else:        cond.append(f"""gle.account = {frappe.db.escape(account)} """)    # 4. 查询借方和贷方合计    gle = qb.DocType("GL Entry")    result = (        frappe.qb.from_(gle)        .select(Sum(gle.debit), Sum(gle.credit))        .where(" and ".join(cond))        .run(as_dict=True)    )    # 5. 计算余额    balance = flt(result[0].debit) - flt(result[0].credit)    return balance

查询性能优化

# 组科目查询使用嵌套查询,避免JOIN# 组科目且币种与公司一致时,直接使用公司币种金额if acc.is_group and acc.account_currency == company_currency:    in_account_currency = False# 使用缓存查询科目属性acc.check_permission("read")  # 权限检查report_type = acc.report_type  # 缓存读取

3.2 带会计维度的余额查询

def get_balance_with_dimensions(account, date=None, dimensions=None):    """    带会计维度的余额查询    Args:        account: 科目代码        date: 查询日期        dimensions: 维度字典,如 {"department": "D001", "project": "P001"}    Returns:        余额金额    """    cond = ["is_cancelled=0"f"posting_date <= {frappe.db.escape(date)}"]    # 添加维度过滤条件    if dimensions:        for fieldname, value in dimensions.items():            cond.append(f"{fieldname} = {frappe.db.escape(value)}")    # 查询GL Entry    result = frappe.db.sql(        f"""        SELECT SUM(debit) as debit, SUM(credit) as credit        FROM `tabGL Entry`        WHERE {' AND '.join(cond)}        """,        as_dict=True    )    return flt(result[0].debit) - flt(result[0].credit)

3.3 Account Closing Balance(期末余额)

表结构

字段
类型
说明
name
VARCHAR(140)
主键
account
Link
会计科目
company
Link
公司
fiscal_year
Link
会计年度
closing_balance
Currency
期末余额
closing_balance_in_account_currency
Currency
期末余额(账户币种)
cost_center
Link
成本中心(可选)
project
Link
项目(可选)
period_closing_voucher
Link
关联的期末结账凭证

生成逻辑

# Period Closing Voucher 提交时生成def on_submit(self):    for account in self.get("accounts"):        # 获取科目余额        balance = get_balance_on(            account=account.account,            date=self.posting_date,            company=self.company,        )        # 创建 Account Closing Balance        frappe.get_doc({            "doctype""Account Closing Balance",            "account": account.account,            "company"self.company,            "fiscal_year"self.fiscal_year,            "closing_balance": balance,            "period_closing_voucher"self.name,        }).insert()

使用场景

1.期末报表:快速获取期末余额,避免全表扫描2.历史查询:查询历史期间的科目余额3.审计追溯:记录期末余额,便于审计


四、核心业务流程

4.1 采购流程(三单匹配)

Purchase Order → Purchase Receipt → Purchase Invoice    (PO)              (PR)              (PI)1. Purchase Receipt(采购收货)   ├── 创建 Stock Ledger Entry(库存增加)   └── 创建 GL Entry:       ├── 借: Stock In Hand(库存科目)       └── 贷: Stock Received But Not Billed(暂估负债)2. Purchase Invoice(采购发票)   ├── 创建 GL Entry:   │   ├── 借: Stock Received But Not Billed(冲销暂估)   │   ├── 借: Purchase Taxes(进项税)   │   └── 贷: Accounts Payable(应付账款)   └── 处理差异:       ├── 价格差异 → Purchase Price Variance       └── 汇率差异 → Exchange Gain/Loss

4.2 销售流程(三单匹配)

Sales Order → Delivery Note → Sales Invoice    (SO)              (DN)              (SI)1. Delivery Note(销售发货)   ├── 创建 Stock Ledger Entry(库存减少)   └── 创建 GL Entry:       ├── 借: Cost of Goods Sold(或 Stock Delivered But Not Billed)       └── 贷: Stock In Hand(库存科目)2. Sales Invoice(销售发票)   ├── 创建 GL Entry:   │   ├── 借: Accounts Receivable(应收账款)   │   ├── 贷: Sales(销售收入)   │   └── 贷: Sales Taxes(销项税)   └── 如果启用发出商品:       ├── 借: Cost of Goods Sold       └── 贷: Stock Delivered But Not Billed

4.3 付款流程

Payment Entry(付款凭证)    ├── 创建 GL Entry:    │   ├── 借: Accounts Payable(冲销应付)    │   └── 贷: Bank/Cash(银行/现金)    └── 更新发票状态(Outstanding Amount)

4.4 收款流程

Payment Entry(收款凭证)    ├── 创建 GL Entry:    │   ├── 借: Bank/Cash(银行/现金)    │   └── 贷: Accounts Receivable(冲销应收)    └── 更新发票状态(Outstanding Amount)

4.5 期末结账流程

Period Closing Voucher(期末结账)    ├── 创建 Account Closing Balance(科目期末余额)    ├── 生成 GL Entry(结转损益)    │   ├── 借: Profit/Loss(本年利润)    │   └── 贷: 所有损益类科目余额    └── 更新下一年期初余额

4.6 日记账流程

Journal Entry(日记账)    ├── 用户填写科目行(account, debit/credit, party, cost_center等)    ├── 系统验证:    │   ├── 借贷平衡    │   ├── 损益类科目必须有成本中心    │   ├── 应收/应付科目必须有交易方    │   └── 会计维度验证    ├── 提交时创建 GL Entry:    │   └── 每一行科目创建一条GL Entry记录    └── 更新相关单据的未结金额

五、税务处理逻辑

5.1 Tax Rule(税务规则)

# 匹配优先级(按顺序匹配)1. Customer / Supplier2. Item / Item Group3. Company4. Country / State5. Tax Category6. 默认规则# 匹配流程- 根据交易方、物料、地区等条件匹配税务规则- 自动应用对应的税务模板- 支持多税率组合

5.2 Taxes & Charges Template(税务模板)

字段
类型
说明
name
VARCHAR(140)
模板名称
company
Link
公司
taxes
Table
税种明细(税率、科目、计算方式)

5.3 Tax Category(税务类别)

用于对物料进行税务分类,便于税务规则匹配。


六、报表生成逻辑

6.1 Balance Sheet(资产负债表)

def get_balance_sheet(company, fiscal_year):    # 1. 获取资产类科目    asset_accounts = get_accounts_by_root_type(company, "Asset")    # 2. 获取负债类科目    liability_accounts = get_accounts_by_root_type(company, "Liability")    # 3. 获取权益类科目    equity_accounts = get_accounts_by_root_type(company, "Equity")    # 4. 计算每个科目的余额    for account in asset_accounts:        balance = get_balance_on(account.name, date=fiscal_year_end_date)    # 5. 按树形结构汇总    # 资产 = 负债 + 权益

6.2 Profit and Loss(损益表)

def get_profit_and_loss(company, fiscal_year):    # 1. 获取收入类科目    income_accounts = get_accounts_by_root_type(company, "Income")    # 2. 获取费用类科目    expense_accounts = get_accounts_by_root_type(company, "Expense")    # 3. 计算期间发生额    for account in income_accounts:        amount = get_balance_on(            account.name,            start_date=fiscal_year_start_date,            date=fiscal_year_end_date,        )    # 4. 计算净利润    # 净利润 = 总收入 - 总费用

6.3 Trial Balance(试算平衡表)

def get_trial_balance(company, date):    # 查询所有科目的借方和贷方合计    result = frappe.db.sql(        """        SELECT             account,            SUM(debit) as debit,            SUM(credit) as credit,            (SUM(debit) - SUM(credit)) as balance        FROM `tabGL Entry`        WHERE company = %s AND posting_date <= %s AND is_cancelled = 0        GROUP BY account        """,        (company, date),        as_dict=True    )    # 验证借贷平衡    total_debit = sum(r.debit for r in result)    total_credit = sum(r.credit for r in result)    assert total_debit == total_credit

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-21 23:18:27 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/864938.html
  2. 运行时间 : 0.236229s [ 吞吐率:4.23req/s ] 内存消耗:5,045.32kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=114d98a8fb4256e44235de3d28653ec3
  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.000854s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001266s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000587s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000609s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000977s ]
  6. SELECT * FROM `set` [ RunTime:0.000323s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001186s ]
  8. SELECT * FROM `article` WHERE `id` = 864938 LIMIT 1 [ RunTime:0.001061s ]
  9. UPDATE `article` SET `lasttime` = 1784647107 WHERE `id` = 864938 [ RunTime:0.066383s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000576s ]
  11. SELECT * FROM `article` WHERE `id` < 864938 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001334s ]
  12. SELECT * FROM `article` WHERE `id` > 864938 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000726s ]
  13. SELECT * FROM `article` WHERE `id` < 864938 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001939s ]
  14. SELECT * FROM `article` WHERE `id` < 864938 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.007723s ]
  15. SELECT * FROM `article` WHERE `id` < 864938 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.019965s ]
0.238888s