随笔分类 -  mysql

mysql 事务
摘要:1.mysql事务是针对innodb引擎的表,只有innodb的表支持事务。2.事务语法:start transaction语句[savepoint 名称][rollback|rollback to 名称][语句]commit [and][chain][and][release]start tran... 阅读全文
posted @ 2015-08-31 16:55 统一B界
in 和 exists的区别
摘要:mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询。一直大家都认为exists比in语句的效率要高,这种说法其实是不准确的。这个是要区分环境的。如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较... 阅读全文
posted @ 2015-07-10 11:38 统一B界
mysql 备份和恢复的两条命令
摘要:压缩备份:1.mysqldump -h localhost -u root -p dbname | gzip > dbname.sql.gz压缩恢复:1.gunzip < dbname.sql.gz | mysql -h localhost -u root -p 阅读全文
posted @ 2015-06-26 14:50 统一B界 阅读(195) 评论(0) 推荐(0)
mysql 性能优化方向
摘要:按照从大到小,从主要到次要的形式,分析 mysql 性能优化点,达到最终优化的效果。利用 mindmanger 整理了思路,形成如下图,每个点在网上都能找到说明,并记录下。形成了优化的思路:1 连接 Connections经常会遇见”mysql: error 1040: too many conne... 阅读全文
posted @ 2015-06-23 16:43 统一B界 阅读(139) 评论(0) 推荐(0)
MYSQL性能查看(命中率,慢查询)
摘要:网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据服务器的”状态”进行优化。 mysql> show global status... 阅读全文
posted @ 2015-06-23 16:41 统一B界 阅读(503) 评论(0) 推荐(0)
mysql 分表与分区
摘要:一.操作环境 数据达到百w甚于更多的时候,我们的mysql查询将会变得比较慢, 如果再加上连表查询,程序可能会卡死。即使你设置了索引并在查询中使用到了索引,查询还是会慢。这时候你就要考虑怎么样来提高查询速度了。 抛弃其他的不讲,只从mysql本身的优化来讲,我所知道的方法有三种:mysql集群,my... 阅读全文
posted @ 2015-05-29 23:11 统一B界 阅读(751) 评论(0) 推荐(0)
mysql 好文章
摘要:http://my.oschina.net/OpenSourceBO/blog/353464http://www.oschina.net/p/cobar mysql集群http://www.dewen.io/q/696/ 分表策略http://www.169it.com/tech-mysql/art... 阅读全文
posted @ 2015-01-09 21:22 统一B界 阅读(132) 评论(0) 推荐(0)
centos 下安装mysql-5.6.11
摘要:这次是在centos6.4下安装mysql,在安装之前,你要先确定你的linux已经安装了这些包: wget, gcc-c++, ncurses-devel ,cmake, make ,perl 如果没有可以用以下命令安装: yum install -y wget gcc-c++ ncurses-d 阅读全文
posted @ 2013-10-14 18:07 统一B界 阅读(406) 评论(0) 推荐(0)
插入数据的优化
摘要:以下是涉及到插入表格的查询的5种改进方法: 1)使用LOAD DATA INFILE从文本下载数据这将比使用插入语句快20倍。 2)使用带有多个VALUES列表的INSERT语句一次插入几行这将比使用一个单行插入语句快几倍。调整bulk_insert_buffer_size变量也能提高(向包含行的表格中)插入的速度。 3)可以对myisam表并行插入Concurrent_insert系统变量可以被设置用于修改concurrent-insert处理。该变量默认设置为1。如果concurrent_insert被设置为0,并行插入就被禁用。如果该变量被设置为2,在表的末端可以并行插入,即便该表... 阅读全文
posted @ 2013-06-05 17:27 统一B界 阅读(184) 评论(0) 推荐(0)
mysql 优化的整体思路
摘要:从小的细节方面考虑再到大到架构方面的优化:1.字段的类型及长度(定长类型与不定长类型)2.表的存储引擎的选择(myisam还是innodb)3.SQL语句写法的优化4.索引优化5.mysql配置的优化6.表结构的优化,考虑是否分表7.结合其他缓存系统,如:memcached,redis8.mysql架构优化,是否分主从。读写分离 阅读全文
posted @ 2013-06-05 17:22 统一B界 阅读(176) 评论(0) 推荐(0)
innodb与myisam的对比总结
摘要:innodb:1.事务操作2.外键操作3.行级锁,这是当有where条件的时候。没有where时,不知道在那一个范围进行搜索时,也是表锁.提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量。4.写的速度快,这是建立在索引的更新操作上5.InnoDB 的设计目标是处理大容量数据时最大化性能,它的 CPU 利用率是其他所有基于磁盘的关系数据库引擎中最有效率的,在技术上,InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。 InnoDB 把数据和索引存放在表空间里,可能包含多个文 阅读全文
posted @ 2013-06-05 09:50 统一B界 阅读(728) 评论(0) 推荐(0)
sql语法的执行顺序,分析是从右到左
摘要:sql语法的分析是从右到左 一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。4)表达式转换, 将复杂的 SQL 表达式... 阅读全文
posted @ 2013-05-10 16:33 统一B界 阅读(1479) 评论(0) 推荐(0)
mysql进行优化前的分析
摘要:1.这个语句可以查询最后一次查询的消耗。mysql在选择索引的时候会选择相对消耗小的索引来使用。show status like ‘%last_query_cost%’;2.永恒定率:T(时间) = S(总量)/V(速度) S指SQL所需访问的资源总量,V指SQL单位时间所能访问的资源量,T自然就是SQL执行所需时间了;我们为了获得SQL最快的执行时间,可以根据公式定义上去反推:在S不变的情况下,我们可以提升V来降低T:通过适当的索引调整,我们可以将大量的速度较慢的随机IO转换为速度较快的顺序IO;通过提升服务器的内存,使得将更多的数据放到内存中,会比数据放到磁盘上会得到明显的速度提升;... 阅读全文
posted @ 2013-05-09 17:41 统一B界 阅读(177) 评论(0) 推荐(0)
mysql 中的straight_join
摘要:当我们在sql中用联合查询的时候,mysql内部机制优化中用于联合驱动的驱动表可能不是我们想要的,就是mysql选 错了驱动表,这样可以用straight_join 这个来强制mysql使用那个表做为驱动表。如:explain SELECT DATE(practicetime) date_time,COUNT(DISTINCT a.userid) people_rowsFROM USER b straight_join test_log aWHERE a.userid=b.userid AND b.isfree=0 AND LENGTH(b.username)>4GROUP BY DAT 阅读全文
posted @ 2013-05-09 16:42 统一B界 阅读(381) 评论(0) 推荐(0)
mysql 读取某个分组最大值,或最新记录的sql
摘要:第一种方法: SELECT * FROM mysqltest aWHERE1 >(SELECT count(*) FROM mysqltest WHERE class = a.class and score>a.score)ORDER BY a.class,a.score DESC; 这种还可以同个... 阅读全文
posted @ 2013-05-09 11:13 统一B界 阅读(577) 评论(0) 推荐(0)
mysql 子查询的问题
摘要:在我们的理想中,一个sql语句都是先执行子查询再执行外查询,但mysql不这样干,mysql不会去先查询子查询。所以当有子查询的语句时,最好做如下优化: selec * from a,(select * from b where ....) b where a.id=b.id; 把子查询改为关联查询... 阅读全文
posted @ 2013-05-08 17:40 统一B界 阅读(208) 评论(0) 推荐(0)
大数据的分页优化的思路
摘要:假设分页的时候我们是按某些字段的升序或降序排列数据的,这样读前几页的时候可以很快的取出数据,如果是读取最后几页呢,就要从扫描后面几页前的所有数据。假设我们可以把后面几次的排序跟前面分页的顺序倒着过来呢,这样也就相当于是在读前几页的数据了。 阅读全文
posted @ 2013-05-08 17:27 统一B界 阅读(176) 评论(0) 推荐(0)
mysql 简单优化规则
摘要:1:索引2.读写分离(写的时候要锁表的行为,其他操作就得等解锁。所以要读写分离)3.大表分表4.少用not in5.不要在循环中用mysql查询6.把复杂的sql语句分解成几个简单的7、用延迟机制新数据 阅读全文
posted @ 2013-05-04 15:46 统一B界 阅读(132) 评论(0) 推荐(0)
mysql语句内部优化
摘要:其他强制操作,优先操作如下:mysql常用的hint对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。强制索引 FORCE INDEXSELECT * FROM TABLE1 FORCE INDEX (FIELD1) …以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。忽略索引 IGNORE INDEXSELECT * FROM TABLE1 IGNORE INDEX (FIELD1, FIELD2) …在上面的SQL语句中,TABLE1表中F 阅读全文
posted @ 2013-04-28 16:06 统一B界 阅读(228) 评论(0) 推荐(0)