选Mysql优化作为我的第一篇博文,实在是因为这个东西很有意思,也是能体现后端开发人员设计细节及逻辑分析的一个知识点。

  那么来吧:

  作为Mysql优化,很多人大概能跟着感觉说出如下   :  (1)常用与不常用分离,(2)给每个字段尽量少的空间。(3)在合适的字段加索引。然后就没有然后了。

  这三条都是正确的,我们先说前两条,并在前两条的基础上进行补充,关于索引,我们在后面会有一个非常大大大的章节去讲:

  (1)常用和不常用分离,能减轻数据库的访问压力 (2)给每个字段尽量少的空间,这样访问的速度会更快

  另外:(3)定长与变长分离,例如  一个数据库有 10行,如果每个字段的长度都是固定的,那么每行的长度也是固定的,假设为100字节,那么我们找第九行的时候,只需要 100*9+1,直接到901个字节去找,就能找到;而如果有变长的字段,那么每一行的长度都是不固定的,找起来就要一行行去找了。

   

    

  (4)在需要关联统计的字段上,添加冗余字段。这句话听起来很难懂,那么,我来设定一个场景,比如有10个选手,然后需要评出一个通过点赞数评出一个获奖者。

  那么,就需要一个表dianzan记录点赞,大致字段为:    选手id  点赞  时间

                            1         1

                            2         1

  当统计1号选手 点赞数时候,就要从点赞表中统计 select count(*) from dianzan where id = 1;

  那么,我们何不在选手表中添加一个字段,dianzan ,每当有人点赞,就把这个数+1,虽然多了一个字段,看似冗余浪费了空间,实则在查询的时候会更方便。

由浅入深Mysql优化的更多相关文章

  1. MySQL优化聊两句

    原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html MySQL优化聊两句 MySQL不多介绍,今天聊两句该如何优化以及从哪些方面入手, ...

  2. 0104探究MySQL优化器对索引和JOIN顺序的选择

    转自http://www.jb51.net/article/67007.htm,感谢博主 本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序.表结构和数据准备参考本文最后部分" ...

  3. mysql 优化

    1.存储过程造数据 CREATE DEFINER=`root`@`localhost` PROCEDURE `generate_test_data`(`n` int) begin declare i ...

  4. mysql优化笔记之分页

    过年闲得蛋疼,于是看看mysql优化,看了网上好多关于分页的优化方法,但是呢,我亲自试上一把的时候,没有出现他们说的现象...难道是我的机器问题么? 下面看看我的实践记录,希望看到的加入进来交流一下O ...

  5. MySQL优化概述

    一. MySQL优化要点 MySQL优化是一门复杂的综合性技术,主要包括: 1 表的设计合理化(符合 3NF,必要时允许数据冗余) 2.1 SQL语句优化(以查询为主) 2.2 适当添加索引(主键索引 ...

  6. MySQL优化实例

    这周就要从泰笛离职了,在公司内部的wiki上,根据公司实际的项目,写了一些mysql的优化方法,供小组里的小伙伴参考下,没想到大家的热情很高,还专门搞了个ppt讲解了一下. 举了三个大家很容易犯错的地 ...

  7. Mysql优化系列(2)--通用化操作梳理

    前面有两篇文章详细介绍了mysql优化举措:Mysql优化系列(0)--总结性梳理Mysql优化系列(1)--Innodb引擎下mysql自身配置优化 下面分类罗列下Mysql性能优化的一些技巧,熟练 ...

  8. mysql优化记录

    老板反应项目的反应越来越慢,叫优化一下,顺便学习总结一下mysql优化. 不同引擎的优化,myisam读的效果好,写的效率差,使用场景 非事务型应用只读类应用空间类应用 Innodb的特性,innod ...

  9. mysql 优化实例之索引创建

    mysql 优化实例之索引创建 优化前: pt-query-degist分析结果: # Query 23: 0.00 QPS, 0.00x concurrency, ID 0x78761E301CC7 ...

随机推荐

  1. HDU - 2802 F(N) (周期)

    题目链接:HDU 2009-4 Programming Contest 分析:具有一定的周期性——4018处理下就可以A了 Sample Input Sample Output AC代码: #incl ...

  2. Codeforces 691A Fashion in Berland

    水题. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #includ ...

  3. Reverse complement DNA

    用法:python rev_comp.py input.fa out.fa 输入文件为 fasta 格式文件,若输入文件中序列的 header 有 '+' 或 '-' 号标记正负链,则带有 '+' 的 ...

  4. java工程开发之图形化界面之(第二课)

    上一节主要是讨论小的应用程序,在这里我们将采用一种全新的方式来重新编写它. 在这里我们注重关注JFrame和JOptionPane.这些类提供了在JAVA应用程序使用图形的方法以及在JAVA程序中对I ...

  5. 第13章 Swing程序设计----标签组件与图标

    在Swing中显示文本或提示信息的方法是使用标签.本节将探讨Swing标签的用法.如何创建标签,以及如何在标签上放置文本和图标. 1.标签的使用 标签可以显示一行只读文本.一个图像或带图像的文本,它并 ...

  6. 帝国CMS系统结合项图文教程

    为了使信息列表可实现按多种条件输出数据,帝国CMS独创可设置无限条件的模型结合项功能.帝国CMS的结合项功能是指按模型多个字段内容来结合显示对应的信息. 二.结合项的语法说明 结合项访问地址: /e/ ...

  7. stock 仓位

    别胆大求多,不轻信盲从.抓住几只自己长期关注并看好的股票.将这几只股票选为自选股,而其他股,不管是机构推荐还是股评荐股,都要谨慎,不轻易听从. 巧用“三三制”,根据趋势控制仓位.当不知道是在涨还是在跌 ...

  8. iOS 热更新插件

    1.JSPatch 平台 http://jspatch.com/Docs/intro 2.React Native 中文文档 http://wiki.jikexueyuan.com/project/r ...

  9. document.createElement方法的使用

    我们在使用createElemen方法t创建一个元素节点的时候,似乎在IE下面怎么写都可以,但切换到FF等其它浏览器却总是会报错. 比如我们要创建一个input元素,那么在IE下,我们可以有多种写法: ...

  10. BNU OJ 50998 BQG's Messy Code

    #include <cstdio> #define _(l) int l #define ___(l,L) for (_(o)=0,x=l o*2;o<x;o++)O= L o; # ...