有一个关于数据库百万级的问题问一下

2019 年 3 月 11 日
 13192262269
要将废卡,坏卡进行回收(要在海量(百万级)数据里进行查询,然后导出卡信息(过十万级)给制卡商,让制卡商制卡)

有没有老哥,给个好的思路方案,如何高性能实现上面要求?

公司项目说明:
1.一个手机卡资源管理系统,java 语言为主,使用 oracle 数据库
2.oracle 采用分级存储
5847 次点击
所在节点    程序员
46 条回复
0ZXYDDu796nVCFxq
2019 年 3 月 11 日
千万级只能算小小小小小数据
smeraldo
2019 年 3 月 11 日
@13192262269 java 导出 oom ?分批吧
iphper993
2019 年 3 月 11 日
百万千万都是小数据啦
@13192262269 你把数据都查出来用代码处理吗?不能用条件过滤呀?
opengps
2019 年 3 月 11 日
数据量确实不算大,难在索引上,合理的索引,搭配 SSD 提高速度,应该够用
jadec0der
2019 年 3 月 11 日
http://www.sqlfiddle.com/

你能建个 fiddle 么,这空口说谁能给出优化建议
zarte
2019 年 3 月 11 日
现在服务器上建索引试下,再来发帖求助。。。
Shynoob
2019 年 3 月 11 日
百万级 如果固态的话 简单的索引 很快的
Navee
2019 年 3 月 11 日
百万级 Mysql 处理起来小儿科
更不要谈 Oracle 了
sigup
2019 年 3 月 11 日
百万行用 txt 读到内存里都能处理。。。
taaaang
2019 年 3 月 11 日
固态硬盘, 索引, 你先跑一下试试再说
oneonesv
2019 年 3 月 11 日
千万也不多啊 有个索引 10 秒足够
你一下全读内存肯定不够,追加写即可
lauix
2019 年 3 月 11 日
建个索引 百万 跟玩一样。
Joyboo
2019 年 3 月 11 日
百万。。我怀疑楼主少了一个“亿”字
mkeith
2019 年 3 月 11 日
数据库 oom,还是你的程序啊?
wmhx
2019 年 3 月 11 日
你就不会写个 for 循环分 N 次么?
wind3110991
2019 年 3 月 11 日
上面有些回答真是要奔溃,很讨厌回答打个反问号,又不给实际解决方案和思路。。
( 1 )要理解 Mysql 恰恰就是适合处理百 /千万级别以下的数据量;
( 2 )检查你的表是什么存储引擎的,是 InnobDB 还是 Mysiam。查询效率上 Mysiam 支持全文索引,查询时性能也要强于 InnobDB,如果你们的数据是一次性的导入,基本都是批量更新的话,可以使用 Mysiam。但是如果更新的比较频繁的话,且要使用事务时,考虑使用 InnobDB。
( 3 )对于慢查询问题:show create table, 查看你表当前的索引,并且是否有主键。看你的情景,是要在百万中选出坏的,那么大致会有状态字段,看一下这个字段是否是作为单列索引存在于你的表中,如果没有,新建一个同样的表,加上索引,然后把数据拷贝过去,然后变更换表(千万不要在老表加索引,容易导致雪崩)。
( 4 )上 10W 数据的表,如果有频繁删除和更新,一定要记得定期做表的优化,Mysiam 的表可以用 optimize,InnobDB 的表用 ALTER TABLE table_name ENGINE = Innodb。因为表在删除数据必然会在数据文件中造成不连续的空白空间,而当再次插入数据时,这些空白空间则会被利用起来,数据的存储位置会不连续,导致大量空间碎片。因此要定期做表优化。
( 5 )查看 DB 机器机型和配置,是否性能不足是机器配置不够高导致的,数据库操作的性能主要瓶颈在于 I/O。
( 6 )尽量给 DB 做主从和集群( MariaDB )。

以上就是能想到的最基本的几个点。
wind3110991
2019 年 3 月 11 日
笔误。。是 MyISAM 不是 MySiam
gz911122
2019 年 3 月 11 日
@wind3110991 然而你说上面人回复的不对却没发现楼主根本不是 mysql...而是 oracle
百万级对于 oracle 随便搞也能在 10 秒内完成,单表
gz911122
2019 年 3 月 11 日
@wind3110991 至于为什么不给解决方案与思路
因为楼主根本没说清楚自己的问题
jzmws
2019 年 3 月 11 日
有什么好的 oracle 分表方案吗? 一个上亿的数据

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/543272

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX