gpt4 book ai didi

php - 增加 VARCHAR 长度或使用 php 处理问题?

转载 作者:行者123 更新时间:2023-11-30 22:37:51 25 4
gpt4 key购买 nike

我使用的是 joomla 3.4,我已经为 sef url 安装了 sh404 组件。我的数据库是 utf8_general_ci 并且我的许多 url 都是从希腊语编码的 url,这导致了一些非常长的 url。

今天我注意到一些 url 被破坏了,所以在调查之后,我意识到 sh404 将 url 存储在 VARCHAR(255) 列中。因此,一些 url(不多,但足以让我从 200k url 中注意到)比列允许的长,并且存储不完整。除了损坏的 url 和预期的 500 个服务器错误等明显问题外,这会导致重复存储相同的损坏 url,因为 sh404 在存储它之前先查看它是否已存储但没有找到它(作为存储的 url被打破)。在一个案例中,我将相同的 url 存储了 5000 多次......

现在我要问你的问题是。我应该只是将 VARCHAR 长度增加到 500(应该足以容纳任何 URL,即使是我最极端的情况,还有 40 - 50 个备用),或者我应该通过音译更改我使用的生成这些 url 的组件的逻辑他们,从而将我所有网址的大小减少到一半以上?这样做的缺点是我仍然需要用希腊语输出所有必要的信息,为此我将不得不使用 php 执行大量的 str_replaces。

我的网址是由一些包含希腊语产品信息的数据库字段组合生成的。 Sh404 获取希腊语 url 并将其音译为英语,但原始 url 变得太长了。如果我更改所有字段以包含相同的信息,已经音译然后 sh404 将存储已经是英文的 url,但数据库字段也将是英文的,因此 str_replaces。好处是这些值是已知的和固定的,所以我不需要任何 preg_replaces。

您认为哪种性能更好?

当然,将 VARCHAR 更改为 500 要简单得多,但如果它对我的性能有好处,我不在乎走很长的路

最佳答案

取决于您使用的是哪个版本的 mysql?

如果是在 MySQL 5.0.3 之前,您将 varchar 更改为 500 选项将不起作用,您必须采用其他方式。

如果它是 5.0.3 或更高版本,那么是的,将 varchar 更改为 500 是可行的,并且与更改整个项目的逻辑相比,它对性能的影响非常小。

关于php - 增加 VARCHAR 长度或使用 php 处理问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31963452/

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