java和数据库交互

JAVA向数据库查询数据:java通过socket把http协议发送网卡,网卡通过对3306端口的监听收到来自Java进程的http请求(数据库也是http协议),通过3306端口把请求发送给了msql,mysql解析http请求得到sql字符串,然后mysql去磁盘中查询对应的表文件,把表文件或者索引加载到内存中,mysql对表文件中的信息进行筛选,最终得到查询结果,mysql根据建立的连接,然后再通过socket传输到端口,通过3306端口将处理结果返回给Java进程

创建索引的时候会把 这个字段的数据生成索引文件,索引文件包括:索引列数据和行地址,然后调用时会加载到内存当中,

在内存中把索引文件恢复成一个平衡树结构,树结构会给索引文件里面的数据排序变有序,然后通过树结构查找到我们需要的数据,然后把数据所在的行地址拿出来直接去磁盘表文件上定位到

java向数据库增删改数据:java通过socket把http协议发送网卡,网卡通过对3306端口的监听收到来自Java进程的http请求(数据库也是http协议),网卡确定是3306端口后会把数据放入到内存的数据库中,通过3306端口把请求发送给了msql,mysql解析http请求得到sql字符串,然后磁盘把磁盘中数据库需要插入的表加载到数据库的内存中,然后数据库把java传入的数据整合到表中后再加载到磁盘中,至少经过两次磁盘IO操作,而两次磁盘的IO操作需要消耗时间,假设消失10ms,此时如果是单线程的话,CPU就需要等待10ms,产生了严重的CPU时间的浪费,CPU在多线程下,等待的时候会切换线程,浪费的时间会降低,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值