深入理解Mysql系列
文章平均质量分 84
weixin_41186611
这个作者很懒,什么都没留下…
展开
-
深入理解Mysql系列——数据库调优详解
有时候需要索引很长的字符列,这会让索引变得大且慢。一个方式是使用哈希索引,另一个是使用前缀索引,即索引开始的部分字符串,这样可以节约索引空间,提高效率。1、查询不需要的记录使用select语句查询大量结果,然后再获取前N行(如新闻网站,取100条记录,只显示前面的10条),这时可以使用limit(limit1,10;6、切分查询,将大查询切分成小查询,每个查询功能一样,只完成一小部分,如果用一个大的语句一次性完成的话,则可能需要一次锁住很多数据、耗尽系统资源、阻塞很多小的但重要的查询。...原创 2022-07-26 19:31:26 · 92 阅读 · 0 评论 -
深入理解Mysql系列——事务详解
执行rollback的关键在于释放申请的锁和回归及时写入状态,而并不是放弃未写入的操作(你关心的点在未写入的操作,然而执行与不执行rollback都没有操作写进去,所有你感觉执行或不执行都没什么区别)。当只执行第一条SQL时,A通知B查看账户,B发现确实钱已到账(此时即发生了脏读),而之后无论第二条SQL是否执行,只要该事务不提交,则所有操作都将回滚,那么当B以后再次查看账户时就会发现钱其实并没有转。3、隔离性(Isolation)事务的执行不受其他事务的干扰,事务执行的。...原创 2022-07-26 19:29:48 · 72 阅读 · 0 评论 -
深入理解Mysql系列——存储引擎详解
innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快,innodb因为是聚簇索引,它把一块数据读入内存后建立索引然后定位,而MYISAM是通过数据的物理位置引用被索引的行,MYISAM是根据索引之间去物理地址中查找行。MyISAM只要发给他们对应那表的frm.MYD,MYI的文件,让他们自己在对应版本的数据库启动就行,而Innodb就需要导出xxx.sql了,因为光给别人文件,受字典数据文件的影响,对方是无法使用的。(2)插入不频繁,查询非常频繁;...原创 2022-07-26 18:45:49 · 235 阅读 · 0 评论 -
深入理解Mysql系列——行存储和列存储详解
假设我们换个场景思考,我们是做电商的,每年产生1000亿条订单,每条订单有50种属性(50个字段),我们的分析师需要分析商品的平均价格,这个时候如果用mysql,就需要把1000亿条全部50个字段数据都从磁盘读取,但是只取了其中price字段使用,因为多读取了49个字段的无用数据,磁盘和内存都会成为性能瓶颈,这个操作非常低效非常慢。因为有页表,所以读取内存的值往往是2k,4k这样的值,导致磁盘一块读入内存中也是2k,4k,所以一个块的大小往往和2k,4k这样的数字有关系。这是行存储的基本逻辑。...原创 2022-07-26 18:35:38 · 2596 阅读 · 0 评论