MySQL的优化(大纲)】的更多相关文章

参考:http://www.cnblogs.com/villion/archive/2009/07/23/1893765.html#3031899 MySQL的优化,主要可以考虑以下四方面: 1.数据库设计: 这是从大的方面,架构方面来设计数据库,设计得有病的数据库,后面的优化也没得救 主要设计数据库设计的 3大范式,以及根据实际,适度进行反范式(效率--空间) 2.sql语句优化: sql语句优化,其实通常是select查询优化,那么索引一定不能避免了 所以这一节的重点就是如何正确高效的使用索…
开源数据库MySQL比较容易碰到性能瓶颈,为此经常需要对MySQL数据库进行优化,而MySQL数据库优化需要运维DBA与相关开发共同参与,其中MySQL参数及服务器配置优化主要由运维DBA完成,开发则需要从数据类型优化,索引优化,SQL优化三个角度考虑MySQL数据库优化问题,本次分享将从开发角度,看如何实现MySQL数据库优化. 本次分享大纲: 一个例子 数据类型优化 索引优化 SQL优化 一.一个例子 数据库需要处理的行数: 189444*1877*13482~~~479亿 如果在关联字段上…
软件程序性能测试在之前<品味性能之道>系列中已经大量提到,讲解了很多测试方法.测试观念.测试思想等等.最近准备深入MySQL进行学习并总结.分别查阅<MySQL性能调优与架构设计>.<MySQL高性能书籍>.<MySQL技术内幕InnoDB存储引擎>.官方<MySQL Manual>,重点关注结构原理,以及各种性能调优手法.大致计划为体系结构.事务与事务隔离机制.锁机制与死锁.范式与反范式.性能调优等. 第一部分.MySQL体系结构 后台线程 内…
原创 2016-08-12 章颖 DBAplus社群 本文根据DBAplus社群第69期线上分享整理而成,文末还有书送哦~ 讲师介绍章颖 数据研发工程师 现任中国移动杭州研发中心数据研发工程师,擅长MySQL故障诊断,性能调优,MySQL高可用技术,曾任中国电信综合平台开发运营中心DBA 开源数据库MySQL比较容易碰到性能瓶颈,为此经常需要对MySQL数据库进行优化,而MySQL数据库优化需要运维DBA与相关开发共同参与,其中MySQL参数及服务器配置优化主要由运维DBA完成,开发则需要从数据…
记得在做项目的时候, 听到过一句话, 尽量不要使用子查询, 那么这一篇就来看一下, 这句话是否是正确的. 那在这之前, 需要介绍一些概念性东西和mysql对语句的大致处理. 当Mysql Server的连接线程接收到Client发送过来的SQL请求后, 会经过一系列的分解Parse, 进行相应的分析, 然后Mysql会通过查询优化器模块, 根据该Sql所涉及到的数据表的相关统计信息进行计算分析. 然后在得出一个Mysql自认为最合理最优化的数据访问方式, 也就是我们常说的"执行计划",…
接上篇Mysql性能优化二 对表进行水平划分 如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了.如果我拆成100个表,那么每个表只有10万条记录.当然这需要数据在逻辑上可以划分.一个好的划分依据,有利于程序的简单实现,也可以充分利用水平分表的优势.比如系统界面上只提供按月查询的功能,那么把表按月拆分成12个,每个查询只查询一个表就够了.如果非要按照地域来分,即使把表拆的再小,查询还是要联合所有表来查,还不如不拆了.所以一个好的拆分依据是 最重要的.关键字:UN…
下一篇:Mysql性能优化二 mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升. Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包括 表的设计合理化(符合3NF) 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] 分表技术(水平分割.垂直分割) 读写[写: update/delete/add]分离 存储过程 [模块化编程,可以提高速度] 对mysql配置优化 [配置最大并发数my.in…
在之前我写过一篇关于这个方面的文章 <[原创]为什么使用数据索引能提高效率?(本文针对mysql进行概述)(更新)> 这次,主要侧重点讲下两种常用存储引擎. 我们一般从两个方面进行MySQL数据库优化: A.SQL语句的优化. 这点,需要我们在写SQL的时候要特别注意,在建表的时候也非常注意. 1 尽量不要在列上进行运算,这样会导致索引失效. 2 使用JOIN时候,应使用小结果集驱动大结果集.把复杂的JOIN拆分成多个QUERY.在多JOIN的时候,最容易导致锁表和堵塞. 3 在使用LIKE进…
1. 背景 通常情况下,能用一条sql语句完成的查询,我们尽量不用多次查询完成.因为,查询次数越多,通信开销越大.但是,分多次查询,有可能提高缓存命中率.到底使用一个复合查询还是多个独立查询,需要根据实际情况考虑. 2. 一个场景 我们有A.B两张表,需要做这样的一个查询: SELECT a1, a2, (SELECT b1, b2 FROM B WHERE B.b3 = A.a1) FROM A WHERE A.a3 = ? 当然,我们也可以拆分成两次查询: SELECT a1, a2 FRO…
1. 普通青年的索引使用方式 假设我们有一个用户表 tb_user,内容如下: name age sex jack 22 男 rose 21 女 tom 20 男 ... ... ... 执行SQL语句: SELECT name FROM tb_user WHERE age = 20; 默认情况下,MySQL需要遍历整张表,才能找到符合条件的记录.如果在age字段上建立索引,那么MySQL可以很快找到所有符合条件的记录(索引本身通过B+树实现,查起来很快.简单起见,想象一下二分查找和遍历查找的区…