乐于分享
好东西不私藏

uni-router:现代化uni-app路由解决方案

uni-router:现代化uni-app路由解决方案

本文基于 v1.4.0 版本,全面介绍 @meng-xi/uni-router 的设计理念与完整功能。

为什么需要 uni-router?

uni-app 原生路由系统基于 pages.json 静态配置,导航通过 uni.navigateTo / uni.redirectTo / uni.reLaunch / uni.navigateBack 等 API 直接调用,缺少以下关键能力:

  • 无路由守卫
    :无法在导航前进行权限校验、登录检查等拦截
  • 无命名路由
    :必须硬编码路径字符串,重构时容易遗漏
  • 无路由元信息
    :无法为路由附加标题、权限标记等结构化数据
  • 无错误体系
    :导航失败时只能通过回调获取,缺乏统一的错误处理机制
  • 无状态同步
    :浏览器后退、物理返回键等场景下路由状态可能不一致
  • 无页面间通信
    :无法在导航时建立页面间的事件通道

@meng-xi/uni-router 的目标是在 uni-app 的静态页面模型上,提供一套 vue-router 风格的路由管理方案,让开发者在 uni-app 中也能享受现代化的路由开发体验。


核心设计理念

不替代 pages.json,而是与之配合

uni-router 不替代pages.json。页面注册仍由 pages.json 负责,uni-router 在此基础上提供路由导航、守卫、元信息等增强能力。这种设计确保了:

  • 完全兼容 uni-app 的页面管理机制
  • 不影响 pages.json 的条件编译等原生能力
  • 可以渐进式引入,无需改造现有项目

基于 uni-app 原生 API 实现

所有导航操作最终通过 uni.navigateTo / uni.redirectTo / uni.switchTab / uni.reLaunch / uni.navigateBack 执行,不绕过 uni-app 的页面管理机制,确保跨平台行为一致。


功能全景

一、路由导航

push — 导航到新页面

// 路径字符串await router.push('/pages/about/about')// 路径对象 + 查询参数await router.push({ path'/pages/about/about', query: { id'1' } })// 命名路由await router.push({ name'about' })// 带动画参数(仅 App 端生效)await router.push({ path'/pages/about/about', animation: { type'slide-in-bottom', duration500 } })// 带页面间通信const result = await router.push({	path'/pages/about/about',	events: {// 监听目标页面通过 eventChannel.emit 发送的事件receiveData: (data) => { console.log('收到数据:', data) }}})// 通过 eventChannel 向目标页面发送事件result.eventChannel?.emit('fromOpener', { msg'你好' })

push 自动根据 meta.isTab 选择 uni.navigateTo(普通页面)或 uni.switchTab(TabBar 页面),开发者无需手动判断。

push 返回 NavigationResult,包含目标路由位置和可选的 eventChannel,用于页面间双向通信。

replace — 替换当前页面

await router.replace('/pages/login/login')await router.replace({ name'home' })

对应 uni.redirectTo。替换 TabBar 页面时自动切换为 uni.switchTab(会关闭所有非 Tab 页面)。

relaunch — 关闭所有页面并打开目标页面

// 路径字符串await router.relaunch('/pages/index/index')// 命名路由 + 查询参数await router.relaunch({ name'login', query: { redirect'/about' } })

对应 uni.reLaunch,常用于:

  • 退出登录后跳转登录页
  • 从深层页面返回首页
  • 重置整个页面栈

设计细节

  • TabBar 页面自动切换为 uni.switchTab
  • uni.reLaunch
     不支持动画参数,传入时输出警告
  • 不进行重复导航检测(清栈场景下目标页面可能就是当前页面)
  • 走完整守卫链(beforeEach → beforeEnter → beforeResolve → afterEach)

back — 返回上一页

await router.back() // 返回上一页await router.back(2// 返回两级await router.back(1, { type'slide-out-left' }) // 指定动画

back() 执行完整的守卫链,守卫可以中止或重定向返回操作。若未指定动画参数,将使用目标页面的 meta.animation 作为默认动画。

重复导航检测

push 到当前页面时自动拒绝并抛出 NAVIGATION_DUPLICATED 错误,避免重复入栈。

注意:relaunch 不进行重复导航检测。因为清栈场景下目标页面可能就是当前页面(如"返回首页"),拒绝此类导航没有意义。

并发导航排队

多次并发导航自动排队,前一次完成后再执行下一次,避免页面栈混乱。


二、页面间通信(EventChannel)

v1.4.0 新增基于 uni.navigateTo 的 EventChannel 机制,实现页面间双向通信。

什么是 EventChannel?

EventChannel 是 uni-app 提供的页面间通信通道,允许发起导航的页面和被打开的页面通过事件机制互相发送数据。这在以下场景中非常有用:

  • 打开详情页时传递初始数据
  • 子页面操作完成后通知父页面刷新
  • 表单页提交结果回传到列表页

编程式导航通信

发起页 — 通过 push 的 events 参数和返回值通信

// 发起页const result = await router.push({	path'/pages/detail/detail',	query: { id'1' },	events: {// 监听目标页面 emit 的事件acceptData(data) => {console.log('收到详情页数据:', data)},// 监听详情页的编辑完成通知editComplete(data) => {console.log('编辑完成:', data)// 刷新列表等操作}}})// 通过 eventChannel 向目标页面发送事件result.eventChannel?.emit('initData', { msg'来自发起页的初始数据' })

目标页 — 通过 getOpenerEventChannel 接收和回复

// 目标页(detail)export default {onLoad() {const eventChannel = this.getOpenerEventChannel()// 监听发起页发来的事件		eventChannel.on('initData'(data) => {console.log('收到初始数据:', data)})// 向发起页发送数据		eventChannel.emit('acceptData', { msg'详情页已加载' })},	methods: {onSave() {const eventChannel = this.getOpenerEventChannel()// 通知发起页编辑完成			eventChannel.emit('editComplete', { id1action'saved' })}}}

声明式导航通信(RouterLink)

<template>	<mxuni-router		:to="{ path: '/pages/detail/detail', query: { id: '1' } }"		:events="{ acceptData: (data) => onAcceptData(data) }"		@navigated="onNavigated"		@error="onNavError"	>		<view>跳转到详情页</view>	</mxuni-router></template><scriptsetup>function onAcceptData(data) {	console.log('收到详情页数据:', data)}function onNavigated(eventChannel) {	// 导航成功后,通过 eventChannel 向目标页面发送事件	eventChannel?.emit('initData', { msg'来自 RouterLink 的初始数据' })}function onNavError(error) {	console.log('导航失败:', error.code)}</script>

EventChannel 接口

interfaceEventChannel{/** 监听事件,每次 emit 都会触发 */on(eventstring, callback: (...args: any[]) => void): EventChannel/** 监听事件,仅触发一次后自动移除 */once(eventstring, callback: (...args: any[]) => void): EventChannel/** 取消监听事件 */off(eventstring, callback?: (...args: any[]) => void): EventChannel/** 触发事件 */emit(eventstring, ...args: any[]): EventChannel}

通信限制

导航方式
对应 uni API
支持 EventChannel
说明
pushuni.navigateTo
返回 NavigationResult.eventChannel
replaceuni.redirectTo
传入 events 时输出警告并忽略
relaunchuni.reLaunch
传入 events 时输出警告并忽略
backuni.navigateBack
返回操作不创建新页面,无通信通道
TabBar 页面
uni.switchTab
传入 events 时输出警告并忽略

三、路由守卫

路由守卫是 uni-router 最核心的能力,提供完整的导航拦截机制。

全局前置守卫 — beforeEach

在每次导航前执行,常用于登录验证:

router.beforeEach((to, from, next) => {if(to.meta.requireAuth && !isLoggedIn()) {next({ name'login', query: { redirect: to.fullPath } })else {next()}})

全局解析守卫 — beforeResolve

在所有前置守卫和路由独享守卫完成后执行,适合需要确保所有守卫都已通过的场景:

router.beforeResolve((to, from, next) => {// 所有前置守卫已通过,导航即将执行next()})

全局后置钩子 — afterEach

在导航完成后执行,不影响导航结果,适合埋点、标题设置等操作:

router.afterEach((to, from) => {if (to.meta.title) {		uni.setNavigationBarTitle({ title: to.meta.title as string })}})

路由独享守卫 — beforeEnter

在路由配置中定义,仅对该路由生效:

const routes = [{		path'pages/admin/admin',		name'admin',		meta: { requireAuthtrue },beforeEnter(to, from, next) => {if (isAdmin()) next()else next({ name'forbidden' })}}]

支持数组形式,按顺序依次执行:

const routes = [{		path'pages/admin/admin',		name'admin',		beforeEnter: [checkAuth, checkAdmin]}]

守卫执行顺序

beforeEach → beforeEnter → beforeResolve → 导航执行 → afterEach

守卫重定向

守卫中调用 next(location) 可重定向到其他路由,支持多级重定向(最大深度 10):

router.beforeEach((to, from, next) => {if (to.meta.requireAuth && !isLoggedIn()) {next({ name'login' }) // 重定向到登录页else {next()}})

守卫超时保护

通过 guardTimeout 配置项(默认 10000ms),防止守卫未调用 next() 导致导航永久挂起:

const router = createRouter({	routes,	guardTimeout15000 // 15 秒超时})

守卫注册返回移除函数

所有守卫注册函数均返回一个移除函数,支持动态注册和注销:

const removeGuard = router.beforeEach((to, from, next) => {// 临时守卫逻辑next()})// 不再需要时移除removeGuard()

四、命名路由

通过 name 字段进行导航,避免硬编码路径字符串:

// 路由配置const routes = [{ path: 'pages/index/index', name: 'home', meta: { isTab: true } },{ path: 'pages/about/about', name: 'about', meta: { title: '关于' } }]// 导航时使用名称await router.push({ name'about', query: { id'1' } })

配合 @meng-xi/vite-plugin 自动生成的类型声明,路由名称可获得 TypeScript 自动补全和类型检查。


五、路由元信息

meta 字段支持页面标题、权限标记、TabBar 标识、导航动画等自定义数据:

interface RouteMeta {	title?: string // 页面标题	isTab?: boolean // 是否为 TabBar 页面	requireAuth?: boolean // 是否需要登录认证	animation?: NavigationAnimation // 默认导航动画(仅 App 端)[keystring]: unknown // 自定义扩展字段}

使用示例:

const routes = [{ path: 'pages/index/index', name: 'home', meta: { isTab: true, title: '首页' } },{ path: 'pages/about/about', name: 'about', meta: { animation: { type'fade-in' } } },{ path: 'pages/admin/admin', name: 'admin', meta: { requireAuth: true } }]

六、导航动画

完整的页面切换动画支持,仅 App 端生效,其他平台自动忽略。

NavigationAnimation 接口

interface NavigationAnimation {	typeUniAnimationType // 动画类型	duration?: number // 持续时间(ms),默认 300}

UniAnimationType — 完整动画类型

显示动画(navigateTo)
关闭动画(navigateBack)
slide-in-rightslide-out-right
slide-in-leftslide-out-left
slide-in-topslide-out-top
slide-in-bottomslide-out-bottom
fade-infade-out
zoom-outzoom-in
zoom-fade-outzoom-fade-in
pop-inpop-out
auto
 / none
auto
 / none

三种使用方式

1. 导航时传入动画参数

await router.push({ path'/pages/about/about', animation: { type'slide-in-bottom' } })await router.back(1, { type'slide-out-left', duration500 })

2. 路由级默认动画(meta.animation)

const routes = [{ path: 'pages/about/about', name: 'about', meta: { animation: { type'fade-in' } } }]

3. RouterLink 声明式动画

<RouterLinkto="/pages/about/about":animation="{ type: 'slide-in-bottom' }">  底部滑入</RouterLink>

动画优先级

push/replace/back 调用时传入 > meta.animation > uni 默认值

各导航方式对动画的支持

导航方式
对应 uni API
支持动画
说明
pushuni.navigateTo
传入 animationType/duration
replaceuni.redirectTo
uni.redirectTo 不支持动画参数
relaunchuni.reLaunch
uni.reLaunch 不支持动画参数
backuni.navigateBack
传入 animationType/duration
TabBar 页面
uni.switchTab
uni.switchTab 不支持动画参数

传入动画参数但不支持时,路由器会输出 console.warn 提醒开发者。


七、uni API 拦截

通过 interceptUniApi 选项拦截原生导航 API,确保路由守卫始终生效:

const router = createRouter({	routes,	interceptUniApitrue // 拦截 uni.navigateTo 等原生 API})

启用后,以下调用将被拦截并转由路由器处理:

// 这两种方式等价,都会经过守卫链uni.navigateTo({ url'/pages/about/about' })router.push('/pages/about/about')

拦截原理

  • 通过 uni.addInterceptor 注册拦截器
  • 路由器内部发起的 API 调用通过计数器标记放行,避免重复执行守卫
  • 外部调用被拦截后,阻止原始 API 执行,转由 router.push/replace/relaunch/back 执行完整守卫链
  • 低版本小程序基础库兼容:修改 args.url 为空字符串,防止忽略返回值继续执行

拦截范围

API
拦截后行为
uni.navigateTo
→ router.push
uni.redirectTo
→ router.replace
uni.switchTab
→ router.push
uni.reLaunch
→ router.relaunch
uni.navigateBack
→ router.back

八、组合式 API

useRouter — 获取路由器实例

import { useRouter } from '@meng-xi/uni-router'const router = useRouter()await router.push('/pages/about/about')

必须在 Vue 组件的 setup() 中调用,通过 Vue 的 inject 机制获取路由器实例。

useRoute — 获取响应式路由位置

import { useRoute } from '@meng-xi/uni-router'const route = useRoute()// route 是 Ref<RouteLocation>,路由变化时自动更新console.log(route.value.path)console.log(route.value.query)

同一 router 实例共享同一个响应式 ref,通过 WeakMap 缓存避免重复创建。

Options API — $router 和 $route

在 Options API 组件中,可通过 this.$router 和 this.$route 访问路由器:

export default {	methods: {goToAbout() {this.route.path}}}

为避免与 uni-app H5 内置的 vue-router 冲突,$router 和 $route 仅在未被定义时设置。


九、RouterLink 组件

基于 uni-app navigator 封装的声明式导航组件:

<template>	<!-- 路径跳转 -->	<RouterLinkto="/pages/about/about">关于页面</RouterLink>	<!-- 命名路由 + 替换模式 -->	<RouterLink:to="{ name: 'about' }"replace>替换导航</RouterLink>	<!-- relaunch 模式(关闭所有页面并打开目标页面) -->	<RouterLinkto="/pages/index/index"relaunch>返回首页</RouterLink>	<!-- 带动画参数 -->	<RouterLinkto="/pages/about/about":animation="{ type: 'fade-in' }">淡入动画</RouterLink>	<!-- 带页面间通信 -->	<RouterLink		:to="{ path: '/pages/detail/detail', query: { id: '1' } }"		:events="{ acceptData: (data) => console.log(data) }"		@navigated="onNavigated"		@error="onNavError"	>		跳转并通信	</RouterLink></template><scriptsetup>import { RouterLink } from '@meng-xi/uni-router/components/RouterLink.vue'function onNavigated(eventChannel) {	// 向目标页面发送事件	eventChannel?.emit('initData', { msg'来自 RouterLink' })}function onNavError(error) {	console.log('导航失败:', error.code)}</script>

Props

Prop
类型
默认值
说明
toRouteLocationRaw
-
目标路由位置
replacebooleanfalse
是否使用替换模式导航
relaunchbooleanfalse
是否使用 relaunch 模式导航,优先级高于 replace
animationNavigationAnimationundefined
导航动画(仅 App 端)
eventsEventListenersundefined
页面间通信事件监听器(仅 push 时生效)
hoverClassstring'navigator-hover'
按下时的样式类
hoverStopPropagationbooleanfalse
阻止祖先节点点击态
hoverStartTimenumber50
按住后出现点击态时间
hoverStayTimenumber600
松开后点击态保留时间

Events

事件
参数
说明
navigatedEventChannel | void
导航成功后触发,参数为 eventChannel 实例
errorNavigationFailure
导航失败时触发

十、路由状态同步

当页面通过浏览器后退、物理返回键等非路由器方式切换时,路由器的 currentRoute 可能与实际页面不同步。syncRoute() 方法从 uni-app 页面栈中读取当前页面信息并更新路由状态:

// 在每个页面的 onShow 生命周期中调用import { onShow } from '@dcloudio/uni-app'import { useRouter } from '@meng-xi/uni-router'const router = useRouter()onShow(() => {	router.syncRoute()})

onRouteChange — 路由变化监听

注册路由状态变化监听器,导航完成和状态同步时都会触发:

router.onRouteChange((to, from) => {console.log(`路由变化: {to.path}`)})

与 afterEach 不同,onRouteChange 也会捕获 syncRoute() 触发的状态变化。


十一、错误处理

完整的错误体系

// RouterError — 路由错误基类classRouterErrorextendsError{readonly code: RouterErrorCode}// NavigationFailure — 导航失败,包含来源和目标信息classNavigationFailureextendsRouterError{readonly to: RouteLocationreadonly from: RouteLocationreadonly cause?: unknown}

错误码

错误码
说明
NAVIGATION_ABORTED
导航被守卫中止或守卫超时
NAVIGATION_CANCELLED
导航被取消(守卫异常或重定向超限)
NAVIGATION_DUPLICATED
重复导航到当前位置
ROUTE_NOT_FOUND
未找到匹配的路由
NAVIGATION_API_ERROR
uni 导航 API 调用失败
SETUP_ERROR
路由器初始化或使用方式错误

全局错误捕获

router.onError((error, to, from) => {if (error.code === 'NAVIGATION_ABORTED') {console.log('导航被中止')}})

onError 返回移除函数,支持动态注销:

const removeHandler = router.onError((error, to, from) => {// 错误处理})removeHandler() // 移除此处理器

十二、TypeScript 类型提示

配合 @meng-xi/vite-plugin 自动生成的类型声明,为路由导航提供类型安全:

// 路由名称自动补全router.push({ name'pagesIndexIndex' }) // ✅ 自动补全router.push({ name'invalidName' }) // ❌ 类型错误// 路径自动补全router.push({ path'/pages/index/index' }) // ✅ 自动补全router.push({ path'/invalid/path' }) // ❌ 类型错误

通过模块增强(module augmentation)填充 RouteNameMap 接口即可启用:

declare module '@meng-xi/uni-router' {interface RouteNameMap {		pagesIndexIndex: { path'/pages/index/index'meta: { titlestringisTabtrue } }		pagesAboutAbout: { path'/pages/about/about'meta: { titlestring } }}}

API 速查

核心

API
说明
createRouter(options)
创建路由器实例
useRouter()
获取路由器实例(组合式 API)
useRoute()
获取响应式路由位置(组合式 API)
RouterLink
声明式导航组件

Router 实例方法

方法
说明
返回值
router.push(location)
导航到新页面
Promise<NavigationResult>
router.replace(location)
替换当前页面
Promise<RouteLocation>
router.relaunch(location)
关闭所有页面并打开目标页面
Promise<RouteLocation>
router.back(delta?, animation?)
返回上一页或多级页面
Promise<void>
router.beforeEach(guard)
注册全局前置守卫
() => void
 移除函数
router.beforeResolve(guard)
注册全局解析守卫
() => void
 移除函数
router.afterEach(guard)
注册全局后置钩子
() => void
 移除函数
router.onRouteChange(listener)
注册路由变化监听器
() => void
 移除函数
router.onError(handler)
注册错误处理回调
() => void
 移除函数
router.syncRoute()
同步路由状态与页面栈
void
router.resolve(location)
解析路由位置(不导航)
RouteLocation
router.getRoutes()
获取所有路由配置
RouteConfig[]
router.hasRoute(name)
检查路由是否存在
boolean

RouterOptions

选项
类型
默认值
说明
routesRouteConfig[]
-
路由配置列表
strictbooleantrue
严格模式,未匹配路由时抛出异常
interceptUniApibooleanfalse
拦截原生导航 API
guardTimeoutnumber10000
守卫超时时间(ms)

RouteConfig

字段
类型
说明
pathstring
页面路径,需与 pages.json 一致
namestring
路由名称,用于命名路由导航
metaRouteMeta
路由元信息
beforeEnterNavigationGuard | NavigationGuard[]
路由独享守卫

NavigationResult

push() 的返回值,继承 RouteLocation,额外包含 eventChannel

字段
类型
说明
pathstring
规范化后的路径
namestring | undefined
路由名称
metaRouteMeta
路由元信息
queryRecord<string, string>
查询参数
fullPathstring
完整路径(含查询参数)
eventChannelEventChannel | undefined
页面间通信通道(仅 push)

与 pages.json 的关系

职责
pages.json
uni-router
页面注册
必须声明
不负责
路由导航
uni.navigateTo
 等
push
 / replace / relaunch / back
路由守卫
不支持
beforeEach
 等
路由元信息
不支持
meta
 字段
命名路由
不支持
name
 字段
导航动画
手动传参
animation
 + meta.animation
页面间通信
手动管理
events
 + eventChannel

快速开始

1. 安装

pnpm add @meng-xi/uni-router

2. 配置路由

// src/router.config.tsimport type { RouteConfig } from '@meng-xi/uni-router'const routesRouteConfig[] = [path'pages/index/index'name'home'meta: { isTabtruetitle'首页' } },path'pages/about/about'name'about'meta: { title'关于' } },path'pages/login/login'name'login'meta: { title'登录' } },path'pages/admin/admin'name'admin'meta: { requireAuthtrue } }]export default routes

3. 创建路由器

// src/main.tsimport { createSSRApp } from 'vue'import { createRouter } from '@meng-xi/uni-router'import routes from './router.config'import App from './App.vue'const router = createRouter({	routes,	stricttrue,	interceptUniApitrue,	guardTimeout15000})// 注册全局守卫router.beforeEach((to, from, next) => {if (to.meta.requireAuth && !isLoggedIn()) {next({ name'login' })else {next()}})router.afterEach(to => {if (to.meta.title) {		uni.setNavigationBarTitle({ title: to.meta.title as string })}})export function createApp() {const app = createSSRApp(App)	app.use(router)return { app }}

4. 在页面中使用

<template>	<view>		<text>当前路径: {{ route.path }}</text>		<button @click="goAbout">跳转关于</button>		<button @click="goAboutWithEvent">跳转并通信</button>		<button @click="goBack">返回</button>	</view></template><scriptsetup>import { useRouter, useRoute } from '@meng-xi/uni-router'const router = useRouter()const route = useRoute()async function goAbout() {	try {		await router.push({ name'about'query: { from'home' } })catch (e) {		console.log('导航失败:', e.code)	}}async function goAboutWithEvent() {	const result = await router.push({		path'/pages/about/about',		events: {			replyFromAbout(data) => {				console.log('收到关于页回复:', data)			}		}	})	// 向关于页发送消息	result.eventChannel?.emit('fromHome', { msg'你好,关于页!' })}async function goBack() {	await router.back()}</script>

平台兼容性

平台
支持情况
uni-app (Vue 3)
✅ 完全支持
uni-app H5 (Safari / Chrome)
✅ 完全支持
uni-app App (Android / iOS)
✅ 完全支持(动画仅 App 端生效)
uni-app 小程序(微信/支付宝/百度/字节等)
✅ 完全支持
uni-app x Web
✅ 支持
uni-app x 小程序
✅ 支持
uni-app x App (Android / iOS / Harmony)
❌ 不支持(无 JS 引擎,需 UTS 重写)

版本演进

版本
核心新增能力
v1.0.0
路由导航、守卫、命名路由、元信息、组合式 API、拦截器
v1.1.0
守卫超时保护、路由变化监听、RouterLink @error
v1.2.0
导航动画(NavigationAnimation / meta.animation)
v1.3.0
relaunch 导航方式、RouterLink relaunch prop
v1.4.0
EventChannel 页面间通信、RouterLink events/@navigated

总结

@meng-xi/uni-router 为 uni-app 开发者提供了一套完整的路由管理方案:

  • vue-router 风格 API
    :零学习成本,上手即用
  • 完整的守卫体系
    :beforeEach / beforeResolve / afterEach / beforeEnter,支持重定向和超时保护
  • 页面间通信
    :EventChannel 双向通信,编程式和声明式均支持
  • 导航动画
    :三种使用方式,优先级清晰,仅 App 端生效
  • uni API 拦截
    :确保守卫始终生效,无论通过何种方式发起导航
  • TypeScript 类型提示
    :路由名称和路径自动补全
  • 错误处理体系
    :完整的错误码和全局错误捕获
  • 组合式 API
    :useRouter / useRoute,响应式路由状态
  • Options API
    :$router / $route 全局属性
  • 路由状态同步
    :处理浏览器后退、物理返回键等场景
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-17 15:58:12 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/762873.html
  2. 运行时间 : 0.243907s [ 吞吐率:4.10req/s ] 内存消耗:4,840.86kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1d959505f632050c232384463124394e
  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.001178s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001691s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000759s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000692s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001321s ]
  6. SELECT * FROM `set` [ RunTime:0.000601s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001415s ]
  8. SELECT * FROM `article` WHERE `id` = 762873 LIMIT 1 [ RunTime:0.001993s ]
  9. UPDATE `article` SET `lasttime` = 1781683093 WHERE `id` = 762873 [ RunTime:0.012065s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.006329s ]
  11. SELECT * FROM `article` WHERE `id` < 762873 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001764s ]
  12. SELECT * FROM `article` WHERE `id` > 762873 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001114s ]
  13. SELECT * FROM `article` WHERE `id` < 762873 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.010091s ]
  14. SELECT * FROM `article` WHERE `id` < 762873 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.008909s ]
  15. SELECT * FROM `article` WHERE `id` < 762873 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007764s ]
0.248430s