
什么叫抽取的更快?和什么比更快?你现在是怎么做的?
数据库性能是和很多因素有关的:
想要数据库响应的快,首先要有好的服务器。
如果数据库是在远程服务器上,还要有充足和流畅的带宽网络。
合理安排表的结构,建立索引。
针对你这个,800万条数据如果在一个表里,要有个整数型的ID作为主键,并做索引。如果数据是从不同的表里抽出来再组合起来的,表与表之间的链接键尽量用整数型并做索引。
然后生成10000个随机数,在ID里查找这1万个数字,取出对应的数据。
处理过程放到数据库端。
针对你这个,10000个随机数的生成函数用存储过程的形式存在服务器端。
先创建一个函数
如下
CREATE FUNCTION isnum(p_string VARCHAR(32)
)
RETURNS int(4)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT '检查字符串是否为纯数字'
BEGIN
/*检查字符串是否为纯数字*/
/*返回值:1-为纯数字 0-非纯数字*/
DECLARE iResult INT DEFAULT 0
SELECT p_string REGEXP '^[0-9]*$' INTO iResult
IF iResult = 1 THEN
RETURN 1
ELSE
RETURN 0
END IF
END
然后
select * from 表名 where isnum(字段名) <>0 and cast(字段名 as DECIMAL) >1000 and cast(字段名 as DECIMAL)<2000这句的表名和字段名你替换成你自己的
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)