为非常动态的网站编写自定义MySQL数据库驱动的PHP会话管理时,对于您的会话表而言,最佳(最快的读/写访问)结构是什么?
错误的例子(未优化):
创建表`session`(
session_id VARCHAR(32)非空,
`session_data` TEXT NOT NULL,
`t_created` DATETIME NOT NULL,
`t_updated` DATETIME NOT NULL,
主键(`session_id`)
)ENGINE = INNODB DEFAULT CHARSET = utf8;
我认为使用内存引擎会更好/更快,但是我不确定。我想不出用英语解释一切的好方法,所以我列出了我认为很重要的要求/细节:
细节:
结果:
预期行寿命(例如会话持续时间):
预期的行数(例如活动会话):
如果有人想出一种更好的方式来表达所有这些短语,请随时进行编辑。
您的直觉似乎是正确的。我建议按如下方式创建表:
CREATE TABLE session (
id CHAR(32) NOT NULL,
data BLOB NOT NULL,
t_created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
t_updated TIMESTAMP,
PRIMARY KEY (session_id),
INDEX t_created(t_created),
INDEX t_updated(t_updated)
)
ENGINE = MEMORY
CHARACTER SET utf8;
笔记:
t_created和t_updated-TIMESTAMP-
的计算速度更快,但是对于此应用程序来说应该没问题。t_created
和t_updated
上的INDEX占用大量内存,并非完全必要,但在按这些列进行查询时,它们确实可以帮助提高性能。 mysqld
重新启动,则所有数据都将丢失。旁注:
我不确定您打算如何垃圾收集会话,但是如果您希望50%的会话在5分钟以内,那么会话结束是如何定义的?用户/客户端是否必须明确退出会话(通过注销)?如果您隐式结束会话,那么用户访问网站的时间可能会很艰难。
问题内容: 我正在使用maven和Jenkins进行自动构建。我正在寻找最佳的Maven开源存储库管理。这样我就可以通过存储库管理器在Maven和jenkins之间进行整合。 问题答案: 我至少知道三个选择 sonatype products archiva.apache(Apache Archiva) 我已经使用了所有三个,每个都有优点和缺点。 我会选择Nexus,因为它得到了Sonatype的
问题内容: 我一直在寻找用于在MongoDB中存储会话数据以在使用Express的生产应用程序中使用的最佳中间件。 我一直在四处寻找,发现了这一点: session-mongoose (https://github.com/donpark/session-mongoose)根据作者的评论,由于以下原因,该产品尚未投入生产: connect-mongo (https://github.com/kcb
问题内容: 我正在接管以前的开发人员的一些应用程序。当我通过Eclipse运行应用程序时,我看到内存使用率和堆大小增加了很多。经过进一步调查,我发现他们正在循环创建一个对象以及其他东西。 我开始经历并做一些清理。但是,我经历的时间越长,我就会遇到更多的问题,例如“这实际上会做什么?” 例如,他们没有在上述循环之外声明变量,而只是在循环中设置其值…而是在循环中创建了对象。我的意思是: 与 我不正确地
问题内容: 基本上,我的问题是- 我有一个价格清单,其中一些是历史价格(即,我希望能够搜索到产品X在3月11日价格为0.99美元,在4月1日价格为1.99美元,等等)。存储此信息的最佳方法是什么? 我以为我可能会有一个产品表,该产品表具有一个价格表的外键。最初,我认为存储当前价格可能是最好的选择,但是我想我希望能够存储历史价格数据,所以最好的方法是存储一个类似于以下价格表的表: 我在这里有点茫然。
问题内容: 我在做一个简单的文本处理和打印语句时经常遇到这种情况,其中我遍历一个集合,我想对最后一个元素进行特殊情况处理(例如,除最后一种情况外,每个普通元素都将用逗号分隔)。 是否有一些最佳实践习惯用法或优雅的形式,不需要重复代码或在循环中插入if或else。 例如,我有一个要用逗号分隔的列表打印的字符串列表。(“做而做”解决方案已经假定该列表包含2个或更多元素,否则与条件循环更正确一样)。 例
问题内容: 就性能,稳定性,成熟度等而言,用于HTTP POST,GET等的最佳Java库是什么?有没有一个特定的库比其他库使用得更多? 我的要求是将HTTPSPOST请求提交到远程服务器。我过去使用过java.net。包以及org.apache.commons.httpclient。包。两者都完成了工作,但是我想请您提出一些意见/建议。 问题答案: imho:Apache HTTP客户端 用法示