Mysql
文章平均质量分 79
csdn265
这个作者很懒,什么都没留下…
展开
-
SQL查询语句中的 limit offset
经常用到在数据库中查询中间几条数据的需求比如下面的sql语句:① selete * from testtable limit 2,1;② selete * from testtable limit 2 offset 1;注意:1.数据库数据计算是从0开始的2.offset X是跳过X个数据,limit Y是选取Y个数据3.limit X,Y 中X表示跳过X个数据,读取Y个数据这两个都是能完成需...转载 2018-05-21 01:07:22 · 4911 阅读 · 0 评论 -
优化MySql中explain的时候出现using filesort
在使用order by关键字的时候,如果待排序的内容不能由所使用的索引直接完成排序的话,那么MySQL有可能就要进行文件排序。【这个 filesort 并不是说通过磁盘文件进行排序,而只是告诉我们进行了一个排序操作而已】。当然,using filesort不一定引起mysql的性能问题。但是如果查询次数非常多,那么每次在mysql中进行排序,还是会有影响的。此时,可以进行的优化转载 2017-03-23 23:29:24 · 4367 阅读 · 0 评论 -
MySQL查询的性能优化
索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等。这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理的,主要是查询语句上面的优化,其它层面的优化技巧在此不做记录。查询的开销指标:执行时间检查的行数返回的行数建立索引的几个准则:转载 2016-05-12 18:40:28 · 435 阅读 · 0 评论 -
mysql复合索引、普通索引总结
转自:http://webnoties.blog.163.com/blog/#m=0对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。下面用几个例子对比查询条转载 2016-07-12 15:34:46 · 10531 阅读 · 0 评论 -
MySQL性能优化的最佳21条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为转载 2017-03-23 16:42:09 · 197 阅读 · 0 评论 -
MySQL数据类型详解
数值类型 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。 表列出了各种数值类型以及它们的允许范围和占用的内存空间。类型大小范围(有符号)转载 2017-03-23 16:41:30 · 294 阅读 · 0 评论 -
mysql explain中的using filesort
Using filesort表示在索引之外,需要额外进行外部的排序动作。导致该问题的原因一般和order by有者直接关系,一般可以通过合适的索引来减少或者避免。 explain SELECT * FROM table_item WHERE user_id = 2 ORDER BY item_id LIMIT 0, 5user_id 和 item_id 分别建立一个索转载 2016-07-12 17:19:26 · 406 阅读 · 0 评论 -
注意使用 BTREE 复合索引各字段的 ASC/DESC 以优化 order by 查询效率
tbl_direct_pos_201506 表有 190 万数据,DDL:[sql] view plain copy print?CREATE TABLE `tbl_direct_pos_201506` ( `acq_ins_code` char(13) NOT NULL DEFAULT '' COMMENT '机构代码',转载 2016-07-12 14:45:25 · 1995 阅读 · 1 评论 -
mysql查询、索引、配置优化
目录一、优化概述二、查询与索引优化分析1性能瓶颈定位Show命令慢查询日志explain分析查询profiling分析查询 2索引及查询优化三、配置优化1) max_connections2) back_log3) interactive_timeout4)转载 2016-07-12 10:20:43 · 880 阅读 · 0 评论 -
mysql 复合索引 总结
对于复合索引:MySQL从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。下面用几个例子对比查询条件的不同对性能影响.create table test(a int,b in转载 2016-06-30 13:47:59 · 8168 阅读 · 0 评论 -
MySQL数据库锁机制
所谓锁,为保证数据的一致性,对共享资源的在被并发访问变得有序的一种规则。不同的MySQL存储引擎,有不同的锁机制或锁实现;总的来所,使用了三种锁级别,行级锁(row-level)、页级锁(page-level)、表级锁(table-level),依次锁定的资源粒度逐渐减小,锁资源是随着锁定资源粒度的减小,锁定同样数据需要的内存数量越来越多,算法也越来越负责,但同时应用程序遇到锁等待的可能也转载 2016-06-29 09:49:45 · 288 阅读 · 0 评论 -
MySql中常用的hint
对于经常使用Oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在MySQL里,也有类似的hint功能。下面介绍一些常用的。强制索引 FORCE INDEX SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。忽略索引 I转载 2017-03-23 23:56:46 · 458 阅读 · 0 评论 -
一个挺不错的mysql锁表的说明,页级锁,表级锁,行级锁
页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以转载 2017-03-24 14:34:05 · 233 阅读 · 0 评论 -
58到家MySQL军规升级版
一、基础规范表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4解读:(1)通用,无乱码风险,汉字3字节,英文1字节(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它 禁止使用存储过程,视图,触发器,Event解读:(1)对数据库性能影响较大,互联网业务,能让站点层和服务层干的事情,不要交到数据库层(2)调试,排错,迁移都比较困难,扩展性较差 ...转载 2018-03-31 12:19:32 · 2104 阅读 · 0 评论 -
CentOS使用YUM安装php运行环境,包含php,php-fpm,nginx,mysql
我们要使用yum来安装PHP-fpm和比较新版本的php,nginx,MySQL-server的话, 首先得给yum添加几个源,CentOS默认的源里面软件比较旧,有些软件、库还没有。EPEL源:Extra Packages for Enterprise Linux (or EPEL)或者叫企业版 linux 附加软件包, 是一个由特别兴趣小组创建、维护并管理的,针对 红帽转载 2017-08-07 10:26:50 · 373 阅读 · 0 评论 -
MariaDB10和MySQL5.6社区版压力测试
编者按:从smart818的观点来看,线程池对性能的影响确实是非常大的,甚至可以把mariadb看成是mysql的企业版。在下面高并发测试显示,MySQL5.6.19的性能减少了50%,整个测试也说明了,MariaDB10确实比MySQL5.6社区版强很多。补上作业,MariaDB10和MySQL5.6社区版压力测试,见下图:sysbench(10.8.8.43)MySQL转载 2017-04-24 12:29:58 · 4123 阅读 · 0 评论 -
MySQL大数据LIMIT优化
问题: 项目每日游戏日志表数据量由原来1w+增长到千万级别,原先获取数据方式:SELECT * FROM table一次性取出的数据量太大导致内存溢出。既然一次性取数据不行,那就分次处理~ 1-1. 使用LIMIT每次取5w条数据SELECT * FROM table LIMIT 0,50000SELECT * FROM table LIMIT 50000,50000.转载 2017-05-03 10:31:34 · 1427 阅读 · 0 评论 -
MYSQL静态表、动态表、压缩表以及两个主要的存储
MySQL在创建表的时候定义表的性质(也叫表的类型),共有三种:静态表,动态表,压缩表。默认是静态表,如果存在varchar、blob、text字段,表类型就是动态了。1.静态表:字段有固定长度,例如:char(20)。如果使用gbk字符集存储中文username,将占用40byte,如果username的实际内容没有达到 40byte,将会填充空格,以达到40byte。速度很快,转载 2017-03-24 18:23:02 · 3464 阅读 · 0 评论 -
mysql表数据压缩
这里分两个部分说明,第一部分:官方文档说明;第二部分:具体实例测试。【第一部分】一、表压缩概述:表压缩可以在创建表时开启,压缩表能够使表中的数据以压缩格式存储,压缩能够显著提高原生性能和可伸缩性。压缩意味着在硬盘和内存之间传输的数据更小且占用相对少的内存及硬盘,对于辅助索引,这种压缩带来更加明显的好处,因为索引数据也被压缩了。压缩对于硬盘是SSD的存储设备尤为重要,因为它们转载 2017-03-24 18:19:44 · 927 阅读 · 0 评论 -
InnoDB与Myisam的六大区别
具体可以看看下表: MyISAMInnoDB构成上区别每个MyISAM在磁盘上存储成三个文件。文件名为表名,扩展名为文件类型。.frm 文件存储表定义;.MYD(MYData) 数据文件的扩展名;.MYI(MYIndex) 索引文件的扩展名。基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表转载 2017-03-24 17:45:20 · 257 阅读 · 0 评论 -
mysql乐观锁总结和实践
上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍:转载 2017-03-24 17:41:20 · 181 阅读 · 0 评论 -
mysql悲观锁总结和实践
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制转载 2017-03-24 17:40:57 · 160 阅读 · 0 评论 -
深入理解乐观锁与悲观锁
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是数据库系统中有乐观锁和悲观锁的概念,像memcache、hiberna转载 2017-03-24 17:39:42 · 206 阅读 · 0 评论 -
MySQL锁机制详解及死锁处理方式
为了给高并发情况下的MySQL进行更好的优化,有必要了解一下MySQL查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level loc转载 2016-06-29 09:48:32 · 4001 阅读 · 0 评论 -
MySQL的索引结构
1.索引基础索引是存储引擎用于快速找到记录的一种数据结构。存储引擎先在索引中找到对应的值,然后根据匹配的索引记录找到对应的数据行。索引可以包含一个列或者多个列的值,如果索引包含多个列,那么列的顺序就会变得比较重要了。2.索引的优缺点2.1优点1. 提高了查询速度2. 减少了数据读取操作(IO) 3. 降低排序和分组的成本(CPU)转载 2016-06-23 16:54:58 · 265 阅读 · 0 评论 -
mysql常用函数
一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然对数的底)的x次方FLOOR(x) 返回小于x的最大整数值GREATEST(x1,x2,...,xn)返回集合中最大的值LEAST(x1,x2,...,xn)转载 2017-01-01 01:04:19 · 179 阅读 · 0 评论 -
一分钟掌握数据库垂直拆分
一、缘起当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表:user(uid bigint,name varchar(16),pass varchar(16),age int,sex tinyint,flag tinyint,sign varchar(64),intro转载 2016-12-21 09:26:13 · 324 阅读 · 0 评论 -
运维角度浅谈MySQL数据库优化
一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分为以下五个阶段:1、数据库表设计项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分就是对表结构设计。对于数据库来说,这点很重要,如果设计不当,会直接影响访问速度和用户体验。转载 2016-12-12 15:46:43 · 479 阅读 · 0 评论 -
高性能MySql学习笔记1——锁、事务、隔离级别
提问:事物的概念什么是脏读?不可重复读为什么需要锁?因为数据库要解决并发控制问题。在同一时刻,可能会有多个客户端对Table1.rown进行操作,比如有的在读取该行数据,其他的尝试去删除它。为了保证数据的一致性,数据库就要对这种并发操作进行控制,因此就有了锁的概念。锁的分类从对数据操作的类型(读\写)分读锁(共享锁):针对同一块数据,转载 2016-09-20 12:10:13 · 274 阅读 · 0 评论 -
mysql的order by,group by和distinct优化
order by,group by和distinct三类操作是在MySQL中经常使用的,而且都涉及到排序,所以就把这三种操作放在一起介绍。order by的实现与优化order by的实现有两种方式,主要就是按用没用到索引来区分:1. 根据索引字段排序,利用索引取出的数据已经是排好序的,直接返回给客户端;2. 没有用到索引,将取出的数据进行一次排序操作后返回给客户端转载 2016-07-14 18:23:29 · 396 阅读 · 0 评论 -
详解 MySQL 中的 explain
在 explain的帮助下,您就知道什么时候该给表添加索引,以使用索引来查找记录从而让select 运行更快。如果由于不恰当使用索引而引起一些问题的话,可以运行 analyze table来更新该表的统计信息,例如键的基数,它能帮您在优化方面做出更好的选择。explain 返回了一行记录,它包括了 select语句中用到的各个表的信息。这些表在结果中按照mysql即将执行的查询转载 2016-07-01 16:49:41 · 308 阅读 · 0 评论 -
MySQL查询优化-explain
摘要 在分析查询性能时,考虑EXPLAIN关键字同样很管用。EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让查询优化器能够更好的工作。 一、MySQL 查询优化器是如何工作的转载 2016-07-13 10:42:46 · 209 阅读 · 0 评论 -
MYSQL explain详解
explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space ASs,uchom转载 2016-07-12 18:03:21 · 179 阅读 · 0 评论 -
mysql使用索引优化order排序
在数据库中我们一般都会对一些字段进行索引操作,这样可以提升数据的查询速度,同时提高数据库的性能像order by ,group by前都需要索引。先我们要注意一下1>mysql一次查询只能使用一个索引。如果要对多个字段使用索引,建立复合索引。2>在ORDER BY操作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。关于索引一些说法MySQL索引通常转载 2016-07-12 15:08:17 · 323 阅读 · 0 评论 -
mysql索引总结----mysql 索引类型以及创建
文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细。直接搬过来了关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓转载 2016-07-11 16:49:59 · 287 阅读 · 0 评论 -
58到家数据库30条军规解读
军规适用场景:并发量大、数据量大的互联网业务军规:介绍内容解读:讲解原因,解读比军规更重要 一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间 (3)数据表、数转载 2017-02-15 23:26:10 · 7914 阅读 · 1 评论 -
MySQL的聚集索引和非聚集索引
一. MYSQL的索引mysql中,不同的存储引擎对索引的实现方式不同,大致说下MyISAM和InnoDB两种存储引擎。MyISAM的B+Tree的叶子节点上的data,并不是数据本身,而是数据存放的地址。主索引和辅助索引没啥区别,只是主索引中的key一定得是唯一的。这里的索引都是非聚簇索引。MyISAM还采用压缩机制存储索引,比如,第一个索引为“her”,第二个索引为“here”,那转载 2017-03-22 17:37:40 · 497 阅读 · 0 评论 -
mysql数据库锁机制
前言为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一。本章将对MySQL中两种使用最为频繁的存储引擎MyISAM和Innodb各自的锁定机制进行较为详细的分析。 MySQL锁定机制简介数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享转载 2016-06-23 16:48:21 · 336 阅读 · 0 评论 -
赶集mysql军规
赶集网mysql开发36军规写在前面的话:总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过。(一)核心军规(1)不在数据库做运算:cpu计算务必移至业务层(2)控制单表数据量:单表记录控制在1000w(3)控制列数量:字段数控制在20以内(4)平衡范式与冗余:为提高效率牺牲范式设计,冗余数据(5)拒绝3B:拒绝大sq转载 2016-05-20 15:10:43 · 290 阅读 · 0 评论 -
微博的MySQL数据库优化实践经验
数据库是所有架构中不可缺少的一环,一旦数据库出现性能问题,那对整个系统都会来带灾难性的后果。并且数据库一旦出现问题,由于数据库天生有状态(分主从)带数据(一般还不小),所以出问题之后的恢复时间一般不太可控,所以,对数据库的优化是需要我们花费很多精力去做的。接下来就给大家介绍一下微博数据库这些年的一点经验,希望可以对大家有帮助。硬件层优化这一层最简单,最近几年相信大家对SSD这个名词并不转载 2016-05-13 12:04:17 · 1236 阅读 · 0 评论