数据库分表后,怎样方便查询 比如表a中间的字段id,title,content.数据量很大,8百万条记录

数据库分表后,怎样方便查询 比如表a中间的字段id,title,content.数据量很大,8百万条记录,第1张

我们在工作中的表都上亿的数据,所以考虑的效率问题要根据区域分表;比如西城是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列数字字符串最大值,同时要求不能取中英文字符,怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9328971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存