数据库小白请教:如果数据库文件很大,MySQL和Python Pandas分# Programming - 葵花宝典h*e2017-01-29 08:011 楼错判形势,以为最多一个半月就有结果现在是5月中交到加州的center今天还在initial review,老妈原定月底走,看来是等不到了各位都等了多久了?
c*z2017-01-29 08:012 楼之前邮寄file 了 今年tax return(是政府欠我钱)。后来也没管它。到现在查状态也查不到。可能寄信掉了?现在在申请OPT 的EAD card。请问没有tax filing的缺失会影响OPT的申请吗。多谢
m*s2017-01-29 08:013 楼数据库小白请教(最近我在业余学习数据库,为了了解system design面试题):如果数据库文件很大比如10GB,内存6GB,MySQL和Python Pandas分别是怎么处理的?看了这个链接:http://stackoverflow.com/questions/31765123/pandas-dataframe-merge-memoryerror感觉Pandas要加chunks处理。而MySQL似乎内部直接处理了。文中的代码没有分批处理的大小size参数,是default的么?另外,在一个10GB的数据库里,搜索一个Name field里,名字叫"Mark"的一行,需要费时多长呢?怎么估计呢?是不是估计软件要把这个数据文件分几部分load进memory,然后加上memory搜索的时间。如果你没有时间解释,能否请给些链接。谢谢!祝鸡年吉祥如意!
h*c2017-01-29 08:015 楼数据库这东西发明就是针对硬盘用的。10年左右的数据库教科书,主要讲MYSQL,有treeindex 还有hash index,去年看mYSQL好像有新的index 种类。如果是hash index,应该是O(M),MYSQL 有个monitor,你可以自己编不同 size ,然后比较一下query 开销。然后找个地方arvxiyz 一下。另外MYSQL是开原的,可以自己变变玩,编过一次。没什么技术意义,太泛泛代码太多。
n*u2017-01-29 08:017 楼服务器加点内存会死人吗?公司服务器内存比个人笔记本电脑还小的公司怎么想的?人工不要钱的?10GB又不算大数据。。。mysql用硬盘比较狠一点,内存只是cache用,小一点他也无所谓,也就慢而已。搜索field是看index和query,如果是搜名字完全等于“Mark”的话,如果有index会很快,O(log n)。没index比较慢,O(n),硬盘里一行一行慢慢搜。你只说10GB,又没说有多少行,数据库设定(myiIsam还是innodb)之类的,没法估计时间。pandas不确定,只是一个软件,数据都是临时load的,不像mysql可以提前加上index,所以应该只能读到内存里再用。
m*s2017-01-29 08:019 楼谢谢回复。最近我在业余学习数据库,为了了解system design面试题.》》没index比较慢,O(n),硬盘里一行一行慢慢搜。在硬盘里一行一行搜,很慢吧。我还以为是,MySQL自己把数据文件分成几大块,按时间顺序,读一块到内存,搜索,记下来。然后处理下一块。【在 n*********u 的大作中提到】: 服务器加点内存会死人吗?公司服务器内存比个人笔记本电脑还小的公司怎么想的?人: 工不要钱的?: 10GB又不算大数据。。。: mysql用硬盘比较狠一点,内存只是cache用,小一点他也无所谓,也就慢而已。: 搜索field是看index和query,如果是搜名字完全等于“Mark”的话,如果有index会很: 快,O(log n)。没index比较慢,O(n),硬盘里一行一行慢慢搜。: 你只说10GB,又没说有多少行,数据库设定(myiIsam还是innodb)之类的,没法估计: 时间。: pandas不确定,只是一个软件,数据都是临时load的,不像mysql可以提前加上index,: 所以应该只能读到内存里再用。
m*s2017-01-29 08:0110 楼这么简单吗?处理中也是要读数据到内存里处理。那么每次要读多少大小的数据到内存呢?一行一行地读,速度很慢吧。比如先读进500M内存,处理,接着读下面500M内存。这个大小有什么讲究?衔接过程中间有没有什么overhead?【在 h**********c 的大作中提到】: hard disk I/O 6Gb/s,很简单的数学题
h*c2017-01-29 08:0111 楼你横竖要把硬盘扫一遍。比较硬盘的开销,内存是不是可以忽略了,差一个 order 左右。具体数据库系统的课本里讲,在这里太叫真意义不大。cache 的功能就是缓存你追进用过的,没用过的,一下就要swap,开销就大了。其实课本上讲得也是二三十年前的理论,MYSQL, MSSQL ORCALE什么背后的优化都是技术秘密,开原的MYSQL比企业版少很多东西。你如果装个单机的话,开原的就够了。【在 m****s 的大作中提到】: 这么简单吗?: 处理中也是要读数据到内存里处理。: 那么每次要读多少大小的数据到内存呢?: 一行一行地读,速度很慢吧。: 比如先读进500M内存,处理,接着读下面500M内存。: 这个大小有什么讲究?: 衔接过程中间有没有什么overhead?