数据库
文章平均质量分 80
Codertoy-酷玩
示之以动,利其静而有主,益动而巽,是为暗度陈仓。
展开
-
【六】高性能MySql笔记——高性能索引类型基础
数据库优化除了好的设计,还需要好的索引,而作者在工作中与团队成员、同事、以及在面试新人的时候发现,很多朋友并没有对索引有一个正确的认识。当问到如何优化数据库时?得到的答案,也是大家所能想到的唯一答案就是建立索引。但当我问到如何正确建立索引时,却都不能正确回答。我曾经在团队项目中实际测试过一个不恰当的索引会导致效率慢一个数量级。所以我们有必要真正的去了解一下索引的原理。 索引:保存在内...原创 2018-06-11 23:01:08 · 242 阅读 · 0 评论 -
【一】MySql高性能优化——基础架构
MySql作为最受欢迎的数据库之一在我们的工作中经常会被用到,但我发现在工作中面试了很多IT工作者,很多人只是站在了MySql的大门之外,并没有深入理解MySql的一些基本原理,出于这个原因,我产生了自学同时也对MySql的基础原理做一系列文章,其中有阐述有无之处请大家包涵指正。 MySql主要分为两层,上层是服务层和查询执行引擎层,下层是存储引擎层。大家不用奇怪上层中包含两层,层次...原创 2018-05-30 00:06:02 · 1449 阅读 · 0 评论 -
【七】高性能MySql笔记——高性能索引策略
正确的索引策略对性能优化相当重要。似乎没有什么事情是完美的,好的索引可以提高性能,坏的索引也可以拉低性能。所以在选择合适的索引策略应该具有通观全局的思维。我们应该充分了解每种索引策略,以使我们可以灵活运用、灵活选择。 独立的列 在MySql查询语句中条件不是独立的列,则不会使用索引。即列不能是表达式的一部分,也不能是函数的参数。我们应该遵循始终将索引列放在表达式的一侧。 ...原创 2018-06-12 23:56:00 · 316 阅读 · 0 评论 -
【二】MySql高性能优化——存储引擎
在上一篇中主要说到了MySql所涉及到的基础知识,其中很多知识在其他的编程语言中也有引用,所以整体来说不会很难理解。今天主要讨论一下MySql中所涉及到的存储引擎。存储引擎主要负责数据的存取,有的存储引擎也会负责事务的管理。如:InnoDB和XtraDB。不同的存储引擎都会有各自的特性,以及适用的场景,所以了解各个存储引擎对于实际工作中进行数据库的设计是很有必要的,有助于我们设计出更高效的...原创 2018-05-31 00:28:19 · 305 阅读 · 0 评论 -
【四】高性能MySql笔记——规矩或者不规矩数据库设计?
设计是程序高性能的基石。嗯~?这句话是我说的,算是个人的心得体会吧。没有好的设计,性能的优化也很难有预期的效果。 规矩是指定教科书式的设计。所以文章题目的意思就是我们到底应该遵循规矩还是不规矩?在数据库的设计中,之前的文章中我们有讨论过范式。范式是一种规范化的设计,但却不一定是最优的设计选择。就像马克思说的:实践是检验真理的唯一标准。所以在数据库设计时我们应该根据实际出发,并非要遵循...原创 2018-06-06 23:53:49 · 357 阅读 · 0 评论 -
【五】高性能MySql笔记——快速ALTER TABLE(Hack手法)
MySql中大数据表的ALTER TABLE操作是非常耗时的。今天讨论下如何快速完成表结构的修改? ALTER TABLE的原理是用新结构创建一张新表,然后将旧表的数据拷贝进新表,最后再删除旧表。ALTER TABLE会导致数据操作服务中断。常用的方式是主备切换和影子拷贝。 主备切换:先在一台不提供服务的机器上执行ALTER TABLE操作,然后和提供服务的主库进行切换。 ...原创 2018-06-07 23:09:35 · 2255 阅读 · 0 评论 -
【三】MySql高性能优化——数据类型
古人云:不积跬步,无以至千里;不积小流,无以成江海。 MySql的优化方法有很多,但很多方法都会告诉你找到时间消耗最大的地方去做针对性的优化。这样做没有错,也是效果最好的。但我认为我们在表的设计和数据类型的选用等这些基础点上就应该做到极致(自己所能达到的最好),虽然这点优化不一定能解决我们的实际问题,但是这些优化都是顺手就可以完成的,本人曾经亲自测试过,选择合适的数据类型在单个查询中...原创 2018-05-31 23:09:20 · 350 阅读 · 0 评论