SELECT data_key, data_value
FROM xf_data_registry
WHERE data_key IN ('options', 'languages', 'contentTypes', 'codeEventListeners', 'deferredRun', 'simpleCache', 'addOns', 'defaultStyleProperties', 'routeFiltersIn', 'routeFiltersOut', 'routesPublic', 'nodeTypes', 'bannedIps', 'discouragedIps', 'styles', 'displayStyles', 'userBanners', 'smilies', 'bbCode', 'threadPrefixes', 'userTitleLadder', 'reportCounts', 'moderationCounts', 'userModerationCounts', 'notices', 'userFieldsInfo')
Run Time: 0.000531
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_data_registry | range | PRIMARY | PRIMARY | 27 | | 26 | Using where |
SELECT data_key, data_value
FROM xf_data_registry
WHERE data_key IN ('brListenerClasses', 'brBriviumAddOns')
Run Time: 0.000145
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_data_registry | range | PRIMARY | PRIMARY | 27 | | 2 | Using where |
SELECT *
FROM xf_brivium_addon
ORDER BY addon_id
Run Time: 0.000296
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_brivium_addon | index | | PRIMARY | 77 | | 1 | |
INSERT INTO xf_data_registry
(data_key, data_value)
VALUES
(?, ?)
ON DUPLICATE KEY UPDATE
data_value = VALUES(data_value)
Params: brBriviumAddOns, a:0:{}
Run Time: 0.000125
SELECT session_data
FROM xf_session
WHERE session_id = ?
AND expiry_date >= ?
Params: 71b8a3b6118d9fcd47102cd6e74305c8, 1716124927
Run Time: 0.000146
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_session | const | PRIMARY,expiry_date | PRIMARY | 34 | const | 1 | |
SELECT cache_value
FROM xf_permission_combination
WHERE permission_combination_id = ?
Params: 1
Run Time: 0.000136
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_permission_combination | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SELECT thread.*
,
user.gender, user.avatar_date, user.gravatar,
NULL AS thread_read_date,
0 AS thread_reply_banned,
0 AS thread_is_watched,
'' AS draft_message, NULL AS draft_extra
FROM xf_thread AS thread
LEFT JOIN xf_user AS user ON
(user.user_id = thread.user_id)
WHERE thread.thread_id = ?
Params: 642318
Run Time: 0.000626
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | thread | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SIMPLE | user | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SELECT node.*, forum.*
,
permission.cache_value AS node_permission_cache,
NULL AS forum_read_date
FROM xf_forum AS forum
INNER JOIN xf_node AS node ON (node.node_id = forum.node_id)
LEFT JOIN xf_permission_cache_content AS permission
ON (permission.permission_combination_id = 1
AND permission.content_type = 'node'
AND permission.content_id = forum.node_id)
WHERE node.node_id = ?
Params: 25
Run Time: 0.000588
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | forum | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SIMPLE | node | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SIMPLE | permission | const | PRIMARY | PRIMARY | 35 | const,const,const | 1 | |
SELECT post.*
,
thread.*, thread.user_id AS thread_user_id, thread.username AS thread_username,
thread.post_date AS thread_post_date,
post.user_id, post.username, post.post_date,
bb_code_parse_cache.parse_tree AS message_parsed, bb_code_parse_cache.cache_version AS message_cache_version,
user.*, IF(user.username IS NULL, post.username, user.username) AS username,
user_profile.*,
user_privacy.*,
signature_parse_cache.parse_tree AS signature_parsed, bb_code_parse_cache.cache_version AS signature_cache_version,
session_activity.view_date AS last_view_date,
0 AS like_date
FROM xf_post AS post
INNER JOIN xf_thread AS thread ON
(thread.thread_id = post.thread_id)
LEFT JOIN xf_bb_code_parse_cache AS bb_code_parse_cache ON
(bb_code_parse_cache.content_type = 'post' AND bb_code_parse_cache.content_id = post.post_id)
LEFT JOIN xf_user AS user ON
(user.user_id = post.user_id)
LEFT JOIN xf_user_profile AS user_profile ON
(user_profile.user_id = post.user_id)
LEFT JOIN xf_user_privacy AS user_privacy ON
(user_privacy.user_id = post.user_id)
LEFT JOIN xf_bb_code_parse_cache AS signature_parse_cache ON
(signature_parse_cache.content_type = 'signature' AND signature_parse_cache.content_id = post.user_id)
LEFT JOIN xf_session_activity AS session_activity ON
(post.user_id > 0 AND session_activity.user_id = post.user_id AND session_activity.unique_key = CAST(post.user_id AS BINARY))
WHERE (
(post.thread_id = ? AND (post.position >= 0 AND post.position < 10) )
)
AND (post.message_state IN ('visible'))
ORDER BY post.position ASC, post.post_date ASC
Params: 642318
Run Time: 0.002162
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | thread | const | PRIMARY | PRIMARY | 4 | const | 1 | Using filesort |
SIMPLE | post | ref | thread_id_post_date,thread_id_position | thread_id_post_date | 4 | const | 1 | Using index condition; Using where |
SIMPLE | bb_code_parse_cache | eq_ref | content_type_id | content_type_id | 31 | const,xenforo.cc.post.post_id | 1 | Using where |
SIMPLE | user | eq_ref | PRIMARY | PRIMARY | 4 | xenforo.cc.post.user_id | 1 | |
SIMPLE | user_profile | eq_ref | PRIMARY | PRIMARY | 4 | xenforo.cc.post.user_id | 1 | |
SIMPLE | user_privacy | eq_ref | PRIMARY | PRIMARY | 4 | xenforo.cc.post.user_id | 1 | |
SIMPLE | signature_parse_cache | eq_ref | content_type_id | content_type_id | 31 | const,xenforo.cc.post.user_id | 1 | Using where |
SIMPLE | session_activity | eq_ref | PRIMARY | PRIMARY | 22 | xenforo.cc.post.user_id,func | 1 | Using where |
INSERT INTO xf_thread_view
(thread_id)
VALUES
(?)
Params: 642318
Run Time: 0.000095
UPDATE `xf_session` SET `expiry_date` = ? WHERE (session_id = '71b8a3b6118d9fcd47102cd6e74305c8')
Params: 1716128527
Run Time: 0.000789
INSERT INTO xf_session_activity
(user_id, unique_key, ip, controller_name, controller_action, view_state, params, view_date, robot_key)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
ip = VALUES(ip),
controller_name = VALUES(controller_name),
controller_action = VALUES(controller_action),
view_state = VALUES(view_state),
params = VALUES(params),
view_date = VALUES(view_date),
robot_key = VALUES(robot_key)
Params: 0, , , XenForo_ControllerPublic_Thread, Index, valid, thread_id=642318, 1716124927,
Run Time: 0.000107
INSERT INTO xf_bb_code_parse_cache
(content_type, content_id, parse_tree, cache_version, cache_date)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE parse_tree = VALUES(parse_tree),
cache_version = VALUES(cache_version),
cache_date = VALUES(cache_date)
Params: post, 649485, a:17:{i:0;s:166:"本周早些时候发布的 Rust for Linux v8 补丁,引入了诸多抽象、并将 Rust 编程语言集成扩展到了内核中的更多部分。Phoronix 指出:";i:1;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:129:"v8 补丁的代码总行数达到了 43.6k,而今日新发布的“Rust for Linux v9”,仅引入了 12.5k 的新代码行。";}}i:2;s:2:"
";i:3;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:90:"https://rdimg.com/proxy/https://static.cnbetacdn.com/article/2022/0806/12445aa2a2b68f7.jpg";}}i:4;s:2:"
";i:5;a:4:{s:3:"tag";s:6:"center";s:6:"option";N;s:8:"original";a:2:{i:0;s:8:"[CENTER]";i:1;s:9:"[/CENTER]";}s:8:"children";a:1:{i:0;s:96:"Rust 有望作为 C 语言的补充,作为支持 Linux 内核驱动程序开发的新语言。";}}i:6;s:349:"
由于删除了许多额外的功能和集成,Rust for Linux v9 较之前的补丁要小得多。通过坚持更初始的“最小化路线”,其有望为主线内核带来更积极的变化。
除了增强集成与构建事务,它还允许对各种抽象和子系统的特定补丁,引来更多人参与代码的审核与反馈工作。";i:7;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:41:"首席开发者 Miguel Ojeda 评论道:";}}i:8;s:2:"
";i:9;a:4:{s:3:"tag";s:6:"indent";s:6:"option";N;s:8:"original";a:2:{i:0;s:8:"[INDENT]";i:1;s:9:"[/INDENT]";}s:8:"children";a:1:{i:0;s:396:"
作为 v8 补丁的‘精简版’,v9 为编译一个最小的 Rust 内核模块提供了足够的支持 —— 以期率先得到‘核心’支持,并开始逐步将其余部分‘上游化’。
内核模块能够创建一个‘向量’,作为一种连续、可增长的数组类型,其能够推送一些数字、并在卸下时使用‘pr_info!’宏将之打印到内核日志。
";}}i:10;s:2:"
";i:11;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:111:"新补丁系列还可通过移除其中部分内容而变得更小,目前看来其取得了不错的平衡。";}}i:12;s:2:"
";i:13;a:4:{s:3:"tag";s:6:"indent";s:6:"option";N;s:8:"original";a:2:{i:0;s:8:"[INDENT]";i:1;s:9:"[/INDENT]";}s:8:"children";a:1:{i:0;s:357:"最终得来 3% 的 kernel crate 留存(减少到了 500 行),60% 的 alloc 和 adapt alloc 提交(100 行),总体量从 40k 精简到了 13k 行。
虽然大多数代码已在 linux-next 中存在数月,但我们还是不得不为减少一些内容而做微小的改动,最后欢迎大家积极反馈这一选项是否符合你的预期。
";}}i:14;s:2:"
";i:15;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:55:"https://www.phoronix.com/news/Rust-For-Linux-v9-Patches";s:8:"original";a:2:{i:0;s:63:"[URL='https://www.phoronix.com/news/Rust-For-Linux-v9-Patches']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;s:8:"Phoronix";}}i:16;s:236:"指出,随着 v9 补丁量的显著瘦身,其有望较之前更容易获得主线许可。
Linus Torvalds 一直希望尽快完成合并(下周的 Linux 6.0 合并窗口),后续将观察相关工作是否已经足够良好。";}, 1621686945, 1716124927
Run Time: 0.000538