我有一个拥有2,400万条目数据库的网站。现在我想使用mod_rewrite生成清晰的URL,例如example.com/this-is-a-beautiful-url。要识别哪个URL属于哪个页面,我想构建一个引用网站内容的URL表。比如“this-url-example”属于ID为123的帖子。 现在有2个朋友告诉我2种不同的方法来构建这个表,我不知道哪个是最好的。
哪种方法可以提供更快的选择查询?你有其他建议吗?谢谢!
答案 0 :(得分:2)
寻求妥协,让网址为 sitename.com/12345/clean-url-format
您可以在一个可读的网址中找到这两个关键字,并且您可以使用这些关键字来获取主键获取行的速度。
将没有文本部分的网址重定向到带有它的规范版本是合理的。
答案 1 :(得分:2)
MD5 Hash旨在用于数据比较。即检查密码是否有效或文件是否保持不变。
如果您计划能够更改和修改URL(用于搜索引擎优化目的),我会坚持使用纯文本。
另外,如果你想创建Mod Rewrite Commands(在HTACCESS中)文件 - 它需要是纯文本才能让你将该URL与特定页面链接。
答案 2 :(得分:0)
我不会使用mysql或md5哈希。相反,请使用键值存储,例如dbm或leveldb。如果您使用的是Apache mod_rewrite
,它有一个功能RewriteMap可以直接从dbm db读取键和值,或者通过调用外部程序。类型可以是sdbm
,gdbm
,ndbm
或db
(Berkeley DB),而apache包含一个程序httxt2dbm来创建数据库。如果你确实想使用MySQL,RewriteMap也可以使用dbd选项和mod_dbd。在性能方面,在MySQL上使用哈希索引应该类似于Berkley DB。