gpt4 book ai didi

php - 什么是用于临时/旋转存储的最佳/最快的 MySQL 表模式,例如用于 session 管理?

转载 作者:可可西里 更新时间:2023-11-01 08:38:29 26 4
gpt4 key购买 nike

当谈到为非常动态的网站编写自定义 MySQL 数据库驱动的 PHP session 管理时, session 表的最佳(最快读/写访问)结构是什么?

错误示例(未优化):

CREATE TABLE `session` (    `session_id` VARCHAR(32) NOT NULL,    `session_data` TEXT NOT NULL,    `t_created` DATETIME NOT NULL,    `t_updated` DATETIME NOT NULL,    PRIMARY KEY  (`session_id`)) ENGINE=INNODB DEFAULT CHARSET=utf8;

我假设使用内存引擎会更好/更快,但我不确定。我想不出用英语解释所有内容的好方法,所以我列出了我认为重要的要求/细节:

详细信息:

  • 类别:优化
  • 子类别:MySQL 查询性能
  • 目标:最快的随机访问表架构和单行查询
  • 常见用途:自定义 session 管理、临时存储
  • 操作系统:*nix,更具体地说:Centos 5+(在 x86_64 上)
  • 数据库:MySQL 版本:5+(社区版)

结果:

  • SQL 查询:创建表
  • SQL 查询:通过随机键选择单行(例如 PHP session ID)
  • SQL 查询:使用随机键插入单行(例如 PHP session ID)
  • SQL 查询:通过随机键(例如 session ID)更新单行
  • SQL 查询:按时间戳删除多行(垃圾收集,例如过期 session )

预期的行生命周期(例如 session 持续时间):

  • 30%:0s-30s
  • 20%:30s-5m
  • 30%:5m-1h
  • 20%:1h-8h

预期行数(例如事件 session ):

  • 低:128
  • 中:1024
  • 高:100000

如果有人能想出更好的方式来表达这一切,请随时编辑。

最佳答案

您是否考虑过使用 memcachedAPC对于 session 数据?这些几乎肯定会比任何 RDBMS 解决方案都快得多。

如果您打算使用 MySQL,还有一个建议:不要使用 MEMORY 存储引擎,只需为各种缓存缓冲区启用大量内存即可。这样,数据将持久耐用,由磁盘存储透明地支持,但在使用时可以快速使用。

关于php - 什么是用于临时/旋转存储的最佳/最快的 MySQL 表模式,例如用于 session 管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/428012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com