我们在工作中的表都上亿的数据,所以考虑的效率问题要根据区域分表;比如西城是01,东城是02,朝阳区是03;你要根据id查某个表的content ,数据分表是依据程序来的,建议建一个配置表 A ,
value_id Tablename
01 table01
02 table02
03 talble03
table01
id,title,content
1 xx dfd
2 yy ddf
3 zz dfdf
table02
id,title,content
12 xx1 dfdxx
13 yy1 ddfxx
14 zz1 dfdfxx
如果再数据库中执行查询
create or replace procedure Prc_Get_Record( v_id in varchar2,v_tableid in varchar2,v_content out varchar )
is
v_table varchar2(20);
v_sql varchar2(4000);
BEGIN
select Tablename into v_table from A where value_id ='v_tableid' ;
v_sql:='select content from '||v_table||' t where tid='''|| v_id ||'''';
execute immediate v_sql into v_content;
end if;
END Prc_Get_Record;
存储过程调用输入参数
Prc_Get_Record('1','01',content ); content 为你所想想要分的a的 “dfd”
Prc_Get_Record('14,'02',content ); content 为你所想想要分的a的 “dfdfxx”
如果是java代码,要得到数据,可以建立一个函数
public String getTablename( String tableid){
//暂用hibernate的basedao
String sql ="select Tablename from A where value_id ="+v_tableid ;
return baseDaogetString(sql);
}
//分表查询的结果
String id = requestgetParameter("id");
String table_name = getRTableName("01");
String sql = "select content from "+table_name+" d where did='" + id + "' ";
return baseDaogetString(sql);
}
其他的 ibatIS,hibernate ;xml的sql查询 同样是如此,在form里获取,表名变量,get,set 将配置表的表名作为sql字符的一个变量执行。
sql里
/~table_name : {tablename}~/
统计查询
在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数、所有用户的最大积分、用户的平均成绩等等,ThinkPHP为这些统计 *** 作提供了一系列的内置方法,包括:
方法 说明
Count
统计数量,参数是要统计的字段名(可选)
Max
获取最大值,参数是要统计的字段名(必须)
Min
获取最小值,参数是要统计的字段名(必须)
Avg
获取平均值,参数是要统计的字段名(必须)
Sum
获取总分,参数是要统计的字段名(必须)
用法示例:
获取用户的最大积分:
$maxScore = $User->max('score');如果ID列格式为ID2009-000578,其中“ID2009-”为固定格式,可以这样写
Select MAX(ID[8,13]) )where ID like "ID2009-%";
ID[8,13]这种格式有的数据库不支持,最好的办法是取MAX(id),再在程序中截取字符串。
SELECT FROM 表名 ORDER BY id DESCLIMIT 0,1或SELECT MAX(TO_NUMBER(c_id)) FROM 表名。
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
一、SQL具有数据定义、数据 *** 纵和数据控制:
1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
2、SQL数据 *** 纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。
二、语言特点
1、SQL风格统一
SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列 *** 作;
这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。
2、高度非过程化
非关系数据模型的数据 *** 纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据 *** 作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的 *** 作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。
3、面向集合的 *** 作方式
SQL采用集合 *** 作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新 *** 作的对象也可以是元组的集合。
参考资料来源:百度百科-结构化查询语言
以上就是关于数据库分表后,怎样方便查询 比如表a中间的字段id,title,content.数据量很大,8百万条记录全部的内容,包括:数据库分表后,怎样方便查询 比如表a中间的字段id,title,content.数据量很大,8百万条记录、thinkPHP 如何查询出数据库中id最大的一条数据、数据库中取id列数字字符串最大值,同时要求不能取中英文字符,怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)