我们的团队使用mysql作为数据库。由于数据量很大。我们通过一些特定的字段值将原始数据库和表分割为多个。
例如,我们在Info中有数据库信息和表t_roll_log
。 t_roll_log
的定义可能类似于
create table `t_roll_log`(
`F_user_id` bigint(20) unsigned NOT NULL,
`F_name` varchar(256) NOT NULL default '',
PRIMARY KEY(`F_user_id`)
)ENGINE=InnDB
我们将原始数据库拆分为100个,每个包含10个表,使用F_user_id的最后三位数。例如,F_user_id=1020
记录位于Info_02.t_roll_log_02_0
,而F_user_id=7721
记录位于Info_72.t_roll_log_72_1
。
在这种情况下,当有大量数据库读/写时,我们减少了表的压力。但问题是,如果不使用外部脚本(如PHP或Python),我可以轻松地从这1000个表中获取结果吗?
例如,在mysql客户端中,也许我想计算t_roll_log中的总记录数,我正在寻找像这样的东西
select count(*) from Info_{00~99}.t_roll_log_{00~99}_{0~9} ;
mysql是否支持类似的语法,或者mysql中是否存在For循环语法?
谢谢。