在我的页脚,我想添加一些东西,如“上次更新xx/xx/200x”,这个日期是最后一次某个mySQL表已更新。
最好的方法是什么?是否有检索最近更新日期的函数?每次需要这个值时,我都应该访问数据库吗?
在我的页脚,我想添加一些东西,如“上次更新xx/xx/200x”,这个日期是最后一次某个mySQL表已更新。
最好的方法是什么?是否有检索最近更新日期的函数?每次需要这个值时,我都应该访问数据库吗?
当前回答
当查询不可用时,将查询缓存在全局变量中。
创建一个网页,在更新缓存时强制重新加载缓存。
将对重新加载页面的调用添加到部署脚本中。
其他回答
我没有information_schema数据库,使用mysql版本4.1.16,所以在这种情况下,你可以查询这个:
SHOW TABLE STATUS FROM your_database LIKE 'your_table';
它将返回这些列:
| Name | Engine | Version | Row_format | Rows | Avg_row_length
| Data_length | Max_data_length | Index_length | Data_free | Auto_increment
| Create_time | Update_time | Check_time | Collation
| Checksum | Create_options | Comment |
如您所见,有一列名为“Update_time”,它显示了your_table的最后一次更新时间。
只需从文件系统中获取修改过的文件日期。用我的语言来说就是:
tbl_updated = file.update_time(
"C:\ProgramData\MySQL\MySQL Server 5.5\data\mydb\person.frm")
输出:
1/25/2013 06:04:10 AM
对于最近的表更改列表,使用这个:
SELECT UPDATE_TIME, TABLE_SCHEMA, TABLE_NAME
FROM information_schema.tables
ORDER BY UPDATE_TIME DESC, TABLE_SCHEMA, TABLE_NAME
操作系统级别分析:
查找DB在磁盘上的存储位置:
grep datadir /etc/my.cnf
datadir=/var/lib/mysql
检查最近的修改
cd /var/lib/mysql/{db_name}
ls -lrt
应该适用于所有数据库类型。
如果您正在运行Linux,您可以使用inotify来查看表或数据库目录。inotify可以从PHP, node.js, perl和大多数其他语言中获得。当然,你必须安装inotify或让你的ISP安装它。很多ISP不会这么做。