我有一个表,它应该有几个列用于非Gregorian (Jalali日历)。我需要按顺序和where语句使用它们,以便在HTML中显示完整的表内容。通过考虑和MySQL的执行时间(),哪一种方案可以提高性能?
1)在每次读写和使用MySQL时,使用PHP将非gregorian转换为gregorian。
2)在每次读写和使用MySQL int/bigint时,使用PHP将非Gregorian转换为UNIX时间戳。
( 3)使用MySQL varchar。
发布于 2016-07-14 16:24:35
这实际上取决于您期望在数据库中使用该值的程度,以及您希望如何在数据库中使用它。
我的直觉会建议在数据库端使用标准的日期时间,并且只在需要时在client/php端将提供的搜索条件转换为查询和显示日期。这将允许您利用内置的MySQL日期和日期时间函数。
然而,由于我对日历不熟悉,只浏览wiki,“计算日历有困难”,所以我的直觉可能是不正确的。您最好在数据库中为Jalali日历创建一组与MySQL提供的函数相对应的存储函数,或者使用完整的编程语言进行计算可能要容易得多。
您甚至可能希望将Jalali存储为标准日期/日期时间类型或unixtimestamp整数以外的东西;相反,您可能会发明或找到一些jalalitimestamp值的实现,这些实现可以利用MySQL中可用的索引选项。
https://stackoverflow.com/questions/38378126
复制相似问题