
Mysql
不惧前行
平凡而简单的人一个,无权无势也无牵无挂。一路厮杀,只进不退,死而后已,岂不爽哉!
收起对“车”日行千里的羡慕;收起对“马”左右逢缘的感叹;
目标记在心里面,向前进。一次一步,一步一脚印,跬步千里。
这个角色用于劝勉现在的我。
展开
-
MySQL数据库优化-总结
http://www.jianshu.com/p/f0a135b8104b面试时遇到的问题:千万级的mysql数据库如何优化?作为一个刚入门的phper,遇到这个问题时,我还是压力山大的.还好有一个周末的时间来学习.本文就是这周末三天的整理总结.方案一:缓存通过redis或memcache,添加缓存服务器.原理:将经常查询的内容自动添加到缓存,访问量低的通过正常查询获得,可原创 2016-12-09 15:59:00 · 386 阅读 · 0 评论 -
MySQL事务隔离级别详解
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirt转载 2017-05-16 10:15:51 · 250 阅读 · 0 评论 -
[分表] -- mysql3重分表方式
原文地址:http://blog.51yip.com/mysql/949.html一,先说一下为什么要分表当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执转载 2017-05-16 16:55:28 · 259 阅读 · 0 评论 -
pt-query-digest使用
参考地址: http://blog.youkuaiyun.com/seteor/article/details/240179131 工具简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输原创 2017-05-27 14:22:22 · 825 阅读 · 0 评论 -
show processlist命令
processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令:1.进入MySQL/bin目录下输入mysqladmin processlist; 2.启动mysql,输入show processlist; 如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户运行的线程)。转载 2017-05-27 15:33:47 · 370 阅读 · 0 评论 -
[基础] -- MySQL 高性能表设计规范
原文地址: http://blog.jobbole.com/112035/一、选择优化的数据类型MySQL支持的数据类型非常多, 选择正确的数据类型对于获得高性能至关重要。更小的通常更好更小的数据类型通常更快, 因为它们占用更少的磁盘、 内存和CPU缓存, 并且处理时需要的CPU周期也更少。简单就好简单数据类型的操作通常需要更少的转载 2017-08-09 16:53:28 · 312 阅读 · 0 评论 -
分布式数据库拆表拆库的常用策略
在大容量,高负荷的web系统中,对数据库进行一系列拆分,可有效提升数据库容量和性能。在初学程序的早期,程序员通常都喜欢按传统数据库设计模式,设计为单库和单一功能表的结构,这样的结构在数据量和并发量达到一定程度之后,会出现严重性能问题和维护问题。在出现问题的时候才着手进行优化,会非常痛苦,所以应该在系统架设之初就考虑好之后会出现的问题。目前有些数据库策略是采用单库结构,然后通过同步分发到数台转载 2017-12-11 14:30:43 · 504 阅读 · 0 评论 -
MySQL分库分表总结参考
单库单表单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 单库多表 随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。如果使用mysql, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写转载 2017-12-11 14:34:53 · 309 阅读 · 0 评论 -
mysql乐观锁和悲观锁
- 悲观锁:正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)的修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。悲观并发控制主要用于数据争用激烈的环境,以及发生并发冲...原创 2018-04-27 10:19:23 · 1337 阅读 · 2 评论 -
mysql子查询慢的问题
当你在用explain工具查看sql语句的执行计划时,若select_type 字段中出现“DEPENDENT SUBQUERY”时,你要注意了,你已经掉入了mysql子查询慢的“坑"。。。下面我们来看一个具体的例子有这样一条查询语句:SELECT gid,COUNT(id) as count FROM shop_goods g1 WHERE status =0 and gid IN (SELE...转载 2018-04-27 10:29:40 · 674 阅读 · 0 评论 -
MySQL中B+Tree索引原理
原文地址: https://blog.youkuaiyun.com/u013235478/article/details/50625677B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查...转载 2018-09-14 10:24:27 · 800 阅读 · 0 评论 -
详解Mysql分布式事务XA(跨数据库事务)
原文地址: http://blog.youkuaiyun.com/soonfly/article/details/70677138在开发中,为了降低单点压力,通常会根据业务情况进行分表分库,将表分布在不同的库中(库可能分布在不同的机器上)。在这种场景下,事务的提交会变得相对复杂,因为多个节点(库)的存在,可能存在部分节点提交失败的情况,即事务的ACID特性需要在各个不同的数据库实例中保证。转载 2017-05-24 09:33:22 · 1852 阅读 · 0 评论 -
mysql中limit优化
在日常项目中难免会用到分页, 当数据量达到千万行数据时候如何对limit进行优化呢 ? 首先在普通的sql语句中limit的表现可以清楚的看到, 使用select * from goods limit 1000000,10进行查询时, 当数据量大于1千万时候, 用时6.43毫米.优化后的sql语句:当使用:select * from go原创 2017-05-04 15:50:35 · 465 阅读 · 0 评论 -
mysql中min和max查询优化
需求: 在一个商城(前台/后台)统计查询 需要按照 , 最低或最高(最大/最小)查询销量, 价格, 库存, 评论数... ...的时候一般需要用到mysql中min或者max函数来解决.但是往往min()或者max()函数往往会造成全表扫描. 下面为我自己做的测试:.首先来看一下goods表结构:CREATE TABLE `biggoods` ( `goods_id` in原创 2017-05-04 15:16:31 · 4151 阅读 · 1 评论 -
MySQL千万级访问量架构
http://www.jianshu.com/p/092a40267f211、HTML 静态化其实大家都知道,效率最高、消耗最小的就是纯静态化的 html 页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单 的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无 法全部手动去挨个实现,于是出现了我们常见的信息发布系统 CMS,像我们常 访问的各个门户转载 2016-12-09 16:03:20 · 2759 阅读 · 0 评论 -
Mysql Join语法解析与性能分析
一.Join语法概述join 用于多表中字段之间的联系,语法如下:... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionatable1:左表;table2:右表。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。LEFT JOIN转载 2017-03-17 15:21:23 · 241 阅读 · 0 评论 -
MySQL性能优化的最佳20+条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。转载 2017-03-17 15:54:33 · 269 阅读 · 0 评论 -
mysql的exists与inner join 和 not exists与 left join 性能差别惊人
由于客户数据量越来越大,在实践中让我发现mysql的exists与inner join 和 not exists与 left join 性能差别惊人。我们一般在做数据插入时,想插入不重复的数据,或者盘点数据在一个表,另一个表否有存在相同的数据会用not exists和exists,例如:Sql代码 insert into t1(a1) select b1 fr转载 2017-03-17 16:13:08 · 5807 阅读 · 0 评论 -
大数据量时Mysql的优化要点
摘要:1、对查询进行优化、应尽量避免全表扫描、首先应考虑在where及orderby涉及的列上建立索引。2、应尽量避免在where子句中对字段进行null值判断、否则将导致引擎放弃使用索引而进行全表扫描、如:selectidfromtwherenumi SyntaxHighlighter...转载请注明来源:大数据量时Mysql的优化要点 1、对查询进行优化、应尽量避免全表扫描、首转载 2017-03-17 17:12:25 · 496 阅读 · 0 评论 -
数据库
其实只要项目中使用了主流的编程语言,则无论是PHP还是.NET还是Python又或是Java什么语言,一旦项目出现性能问题那基本上问题都出在数据库里面,数据量大,查询语句的查询逻辑比较低下所以其实在代码层做运行效率的优化所得来的“提升感”并不会很明显,大部分程序员还是要花多点时间在数据库优化的工作上(这里默认指的就是实现了SQL标准的关系型数据库)这其实已经不是PHP领域的专题了,我个人也转载 2017-03-08 15:19:51 · 233 阅读 · 0 评论 -
理解MySQL——索引与优化
原文地址: http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存转载 2017-03-29 10:24:23 · 211 阅读 · 0 评论 -
[重要] -- MySQL性能优化的21个最佳实践 和 mysql使用索引
原文地址: http://www.cnblogs.com/daxian2012/articles/2767989.html今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作转载 2017-03-30 11:01:25 · 542 阅读 · 0 评论 -
[索引优化] -- in or替换为union all
一个文章库,里面有两个表:category和article。category里面有10条分类数据。article里面有 20万条。article里面有一个"article_category"字段是与category里的"category_id"字段相对应的。article表里面已经把 article_category字义为了索引。数据库大小为1.3G。问转载 2017-03-23 16:43:21 · 849 阅读 · 0 评论 -
mysql分库分表实战及php代码操作完整实例
原文地址: http://blog.youkuaiyun.com/nuli888/article/details/52143065当单表达到几千万时,查询一次要很久,如果有联合查询,有可能会死在那分库分表主要就是解决这个问题,减小数据库的负担,缩短查询时间分库:1)按功能分用户类库、商品类库、订单类库、日志类、统计类库...1)按地区分每个城市或省市一个同样的库,加上后转载 2017-04-10 16:15:29 · 778 阅读 · 0 评论 -
MySQL批量SQL插入性能优化
原文地址: http://tech.uc.cn/?p=634对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。1.转载 2017-04-21 16:03:53 · 302 阅读 · 0 评论 -
MySQL索引原理及慢查询优化
原文地址: http://tech.meituan.com/mysql-index.htmlMySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应转载 2017-05-12 14:24:45 · 322 阅读 · 0 评论 -
索引失效&子查询-慢查询的起因
原文地址: https://blog.youkuaiyun.com/baidu_zhongce/article/details/46845157目前,Mysql作为常用的数据库,在各类业务中被广泛运用。但是其设计并非是十全十美,一些我们认为“高效“的语句,在执行时会花费大量的时间,导致页面出现超时错误。这里举一些简单的bad case,希望大家以后处理慢sql时能有所参考。(不想研究分析过程的,请移步...转载 2018-09-14 14:19:38 · 610 阅读 · 0 评论