​一、优化方法:(加粗部分为比较重要的)

1、数据表设计合理;2、索引优化;3、SQL语句优化,定位慢查询explain ;4、分表技术、分区技术;5、读写分离(配置);6、创建适当的存储过程、函数、触发器’7、my.ini配置优化;8、软硬件升级;

1、表的设计满足3nf(范式)

a、1nf 指表的列具有原子性,不可再分。关系型数据库天然满足1nf

b、2nf表中不能有完全重复的记录。一般通过自增主键实现

c、3nf 列的内容可以推导出的,那就不要单独一列存放。也就是说,比如一个学生肯定会有班级、系等信息,所以可以另外新建class表,两表关联

2、索引(B-tree)优化、定位慢查询explain

创建海量表,例如800万条完全不同的数据,这时,我们需要使用存储过程完成。

为了防止创建存储过程冲突,定义一个新的命令结束符,如下:

在mysql里面创建一个函数(用于随机返回指定的个数字符串),这个函数可以直接被使用,也可以被php所使用 select rand_string(10) from 表

用随机函数,生产海量数据,构建大表

大表构建完成以后

海量表带来的问题,速度太慢

a、先使用索引尝试解决

但是要考虑到,索引是有开销的,如果占了大量内存,例如1G,最好还是考虑分表的好。

b、定位慢查询explain

怎么分析慢语句---使用explain

5、优化

如何选择存储引擎:

现在越来越多使用innoDB (并发性好)

读、插入操作为主,少量更新、删除操作,并且对事务的完整性要求不高,选择MyISM,其优点是速度快(尤其适合论坛帖子、新闻、商品列表)

InnoDB 提供事务安全,写的操作会比较差一点,占用更多的磁盘空间,(尤其适合对安全性要求比较高的,积分、余额、账户)

Memory(访问频繁,变化频繁,不需要入库的数据,例如用户登录状态)

选择合适的数据类型:

http://c.biancheng.net/cpp/html/1466.html 

mysql优化---笔记的更多相关文章

  1. (转)MySQL优化笔记(八)--锁机制超详细解析(锁分类、事务并发、引擎并发控制)

    当一个系统访问量上来的时候,不只是数据库性能瓶颈问题了,数据库数据安全也会浮现,这时候合理使用数据库锁机制就显得异常重要了. 原文:http://www.jianshu.com/p/163c96983 ...

  2. mysql系列十一、mysql优化笔记:表设计、sql优化、配置优化

    可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非 ...

  3. mysql优化笔记之分页

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

  4. [数据库系列之MySQL]Mysql优化笔记

    大型网站提速之MySql优化 数据库优化包括的方面 数据库优化是一个综合性的技术,并不是通过某一种方式让数据库效率提高很多,而是通过多方面的提高,从而使得数据库提高很多. 主要包括: 1.表的设计合理 ...

  5. mysql 优化笔记

    数据表总共81万条数 SQL explain ); 执行时间超级长,没有等到执行完成就终止了太慢了 explain一下 发现表bb 的select_type 为DEPENDENT SUBQUERY   ...

  6. mysql优化笔记

    query_cache_size 查询缓存 query_cache_type缓存是否打开 OFF/ON read_buffer_size读缓存SET GLOBAL query_cache_size=1 ...

  7. (转)MySQL优化系列

    原文:http://blog.csdn.net/jack__frost/article/details/71194208 数据库,后端开发者必学,而且现在以MySQL居多.这个系列将系统化MySQL一 ...

  8. MySQL学习笔记(三)数据优化

    第1章 数据库优化简介1-1 MySQL优化简介 第2章 SQL语句优化2-1 数据准备 2-2 MySQL慢查日志的开启方式 2-3 MySQL慢查日志分析工具之 mysqldumpslow www ...

  9. SQL学习笔记之项目中常用的19条MySQL优化

    在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的 0x00 EXPLAIN 做MySQL优化,我们要善用 EXPL ...

随机推荐

  1. 基于struts2注解@action的@Result跳转问题——跳转到另一个action

    初学ssh 基于注解的方式简单灵活,但是做一个例子的时候,添加用户AddUser 完成后 想页面跳转到 ListUser 这个action, 然后action 成功后 会跳转到list.jsp 显示 ...

  2. Details.cshtml(118): error CS1001: 应输入标识符

    写了没定义 @Html.DisplayFor(model => model.)

  3. 撩课-Java每天5道面试题第8天

    撩课Java+系统架构 视频 点击开始学习 71.jsp有哪些内置对象?作用分别是什么? Page, pageContext, request, response, session, applicat ...

  4. C#操作XMl文件(2):使用XmlReader和XmlWriter实现读取和写入

    这次使用操作Xml较为常用的方法:使用XMlreader和Xmlwriter 1:读取xml文件的数学和元素 XmlReaderSettings settings = new XmlReaderSet ...

  5. spring-security 开启注解权限控制为什么没有效果

    如果配置在spring-security中没有权限控制效果,可以配置在springmvc中试试 <security:global-method-security pre-post-annotat ...

  6. 第N次学习javaIO之后

    io按流分 输入流.输出流 io按类型分(是类型吧) 字节流.字符流 ------------------------------------- 先说说一直以来混淆什么时候用输入流,什么时候用输出流. ...

  7. csharp:search and Compare string

    /// <summary> /// 涂聚文 /// 2011 捷为工作室 /// 缔友计算机信息技术有限公司 /// </summary> /// <param name ...

  8. 解析json结构绘制canvas

    在工作中偶尔会遇到绘制转发卡/邀请卡的业务,且这个转发卡/邀请卡的风格会有很多,要求最后生成图片.这时候如果使用一张图片绘制一个canvas,这个工作量会相当大.分析一下转发邀请的内容,会发现所有的里 ...

  9. sql按中文数字排序

    有表4张 建表和插入数据sql DECLARE @p_Building TABLE ( id INT , BidName ) ); DECLARE @p_Room TABLE ( id INT , R ...

  10. Java线程唤醒与阻塞

    阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的同学对它一 定已经很熟悉了.Java 提供了大量方法来支持阻塞,下面让我们逐一分析. 转载于:http://blog.cs ...