五、数据库学习
文章平均质量分 74
4K_WarCraft
选择比努力重要,机遇比能力重要
展开
-
订单分库分表实践总结以及关键步骤
随着唯品会业务的快速发展,订单量的不断增长,原有的订单存储架构已经不能满足公司的发展了,特别是在大促高峰期,原订单库已经成为抢购瓶颈,已经严重制约公司的发展。唯品会旧订单库包含几十张订单相关表,旧订单库是典型的一主多从架构;主库容量已接近服务器物理空间上限,同时也已经达到MySQL的处理上限,很快将无法再处理新增订单。旧订单库面临的问题有:1、超大容量问题订原创 2017-05-02 09:59:49 · 417 阅读 · 0 评论 -
MySQL读书笔记-MVCC多版本并发控制
MySQL的大多数事务型存储引擎实现的都不是简单的行级锁。基于提升并发性能的考虑,它们一般都同时实现了多版本并发控制(MVCC)。不仅是MySQL,包括Oracle, PostgreSQL等其他数据库系统也都实现了MVCC,但各自的实现机制不尽相同,因为MVCC没有一个统一的实现标准。可以认为MVCC是行级锁的一个变种,但是它在很多情况下避免了加锁操作,因此开销更低。虽然实现机制所有不原创 2016-12-14 18:11:48 · 259 阅读 · 0 评论 -
MySQL读书笔记-存储引擎
前言关于存储引擎的细节,请参考官方文档。如果使用InnoDB引擎,建议阅读官方手册中的InnoDB事务模型和锁一节。数据库和表在文件系统中,MySQL将每个数据库(schema)保存为数据目录下的一个子目录。创建表时,MySQL会在数据库子目录下创建一个和表同名的.frm文件,用于保存表的定义。因为MySQL使用文件系统的目录保存数据库和表的定义,大小写敏感性和具体的平台相关。原创 2016-12-14 18:12:46 · 277 阅读 · 0 评论 -
MySQL读书笔记-事务日志,MySQL中的事务
WLA(Write-Ahead Logging)事务日志,可以帮助提高事务的效率。使用事务日志,存储引擎在修改表的数据时,只需要修改其内存拷贝,再把该修改行为记录到硬盘上的事务日志中,而不用每次都将修改的数据本身持久到磁盘。事务日志采用的是追加的方式,因此写日志的操作是磁盘上一小块区域内的顺序I/O,而不是随机I/O,所以快很多。事务日志持久以后,内存中被修改的数据在后台可以慢慢地刷回到磁原创 2016-12-14 18:13:36 · 307 阅读 · 0 评论 -
MySQL读书笔记-事务,隔离级别,死锁
事务事务,就是一组原子性的SQL查询。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询;如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。即,事务内的语句,要么全部执行成功,要么全部执行失败。可以用START TRANSACTION语句开始一个事务,然后要么使用COMMIT提交事务将修改的数据持久保留,要么使用ROLLBACK撤销原创 2016-12-14 18:14:19 · 350 阅读 · 0 评论 -
MySQL读书笔记-并发控制
MySQL在两个层面的并发控制。服务器层存储引擎层无论何时,只要有多个查询需要在同一时刻修改数据,都会产生并发控制的问题。MySQL是如何控制并发读写的呢?在处理并发读或者写时,可以通过实现一个由两种类型的锁组成的锁系统来解决问题。这两种类型的锁,通常被称为共享锁(shared lock)和排他锁(exclusive lock),或者读锁(read lock)和写锁(write l原创 2016-12-14 18:16:07 · 277 阅读 · 0 评论 -
MySQL读书笔记-逻辑架构
MySQL逻辑架构第一层连接处理,授权认证,安全管理等。连接管理每个客户端连接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行,该线程只能轮流在某个CPU中运行,服务器会负责缓存线程(例如,使用线程池,可以使用线程池中少量的线程来服务大量的连接),因此,不需要为每一个新建的连接创建和销毁线程。安全性当客户端连接到MyS原创 2016-12-14 18:16:50 · 302 阅读 · 0 评论 -
SQL 大数据查询如何进行优化?
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描 select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查原创 2017-05-02 09:56:31 · 338 阅读 · 0 评论 -
Mysql 千万级数据分页优化
在使用mysql数据库查询分页时,常用查询分页 limit 在小数据量查询ok熟读非常快 ,但是在大表数据查询时候性能非常有限这和limit本身设计相关好了下面介绍几种常用limit分页查询优化方案。 首先使用储存过程向数据库中插入1000w数据,脚本如下 Java代码 DROP PROCEDURE if exists in原创 2017-05-02 09:57:58 · 542 阅读 · 1 评论 -
SQL大数据量查询的优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:sel转载 2016-07-25 18:00:44 · 1423 阅读 · 0 评论