导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:359
阅读量:2140288
访问量:255153
至今:
×
博文->>搜索结果(耗时0.042秒) 博文列表>>
Tags : MySQL,调优,优化 发表时间: 2017-10-26 21:54:31
MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供101条优化MySQL的建议。有些技巧适合特定的安装环境,但是思路是相通的。我已经将它们分成了几类以帮助你理解。MySQL监控MySQL服务器硬件和OS(操作系统)调优:1、有足够的物理内存,能将整个InnoDB文件加载到内存里——如果访问的文件在内存里,而不是在磁盘上,InnoDB会快很多。2、全力避免Swap操作—交换(swapping)是从磁盘读取数据,所以会很慢。3、使用电池供电的RAM(Battery-BackedRAM)。4、使用一个高级磁盘阵列—最好是RAID10或者更高。5、避免
类别:DB | 阅读(2150)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,批量插入 发表时间: 2017-10-02 13:35:48
在日常MySQL操作中,数据迁移是经常要做的事情。而且这就涉及到快速批量的数据迁移,也就是操作中需要进行批量插入或更新。这里分享下我使用SpringJDBC进行批量插入的数据迁移学习案例。destJdbcTemplate.batchUpdate(sql,newBatchPreparedStatementSetter(){@OverridepublicvoidsetValues(PreparedStatementps,inti)throwsSQLException{}.......}案例数据:打算将10万数据从A表迁移到B表,每次分批次1万条记录,也就是需要10次批操作才能将输入插入到B表。测试
类别:DB | 阅读(2582)| 回复(0)| (0) 阅读全文>>
Tags : mysql,递归查询 发表时间: 2017-04-24 15:57:06
1、创建表:DROPTABLEIFEXISTS`t_areainfo`;CREATETABLE`t_areainfo`(`id`int(11)NOT'0'AUTO_INCREMENT,`level`int(11)DEFAULT'0',`name`varchar(255)DEFAULT'0',`parentId`int(11)DEFAULT'0',`status`int(11)DEFAULT'0',PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=65DEFAULTCHARSET=utf8;2、初始数据:INSERTINTO`t_areainfo`VALU
类别:DB | 阅读(2128)| 回复(0)| (0) 阅读全文>>
Tags : MySQL 发表时间: 2016-08-20 21:26:33
错误:Hostisblockedbecauseofmanyconnectionerrors;unblockwith'mysqladminflush-hosts'原因:  同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞;解决方法:1、提高允许的max_connection_errors数量(治标不治本):  ①进入Mysql数据库查看max_connection_errors:showvariableslike'%max_connection_errors%'; ②修改max_connection_errors的
类别:DB | 阅读(2126)| 回复(0)| (1) 阅读全文>>
Tags : MYSQL,分区 发表时间: 2016-06-29 21:16:06
建表语句droptableifexiststerminal_parameter;CREATETABLE`terminal_parameter`(`terminal_parameter_id`int(11)NOTNULLAUTO_INCREMENT,`serial`int(11)DEFAULTNULL,`network_type`char(1)DEFAULTNULL,`mcc`int(8)DEFAULTNULL,`mnc`int(8)DEFAULTNULL,`lac`int(8)DEFAULTNULL,`cellid`int(8)DEFAULTNULL,`bsic_psc`int(8)DEFAU
类别:DB | 阅读(1912)| 回复(0)| (1) 阅读全文>>
Tags : MySQL,存储过程,动态SQL 发表时间: 2016-05-28 15:50:25
--存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数createprocedurep_procedurecode(insumdatevarchar(10))begindeclarev_sqlvarchar(500);--需要执行的SQL语句declaresymvarchar(6);declarevar1varchar(20);declarevar2varchar(70);declarevar3integer;--定义游标遍历时,作为判断是否遍历完全部记录的标记declareno_more_departmentsintegerDEFAULT0;--定义游标
类别:DB | 阅读(1958)| 回复(0)| (0) 阅读全文>>
Tags : MySQL 发表时间: 2016-05-28 15:47:23
每周第一天:SELECTCURDATE(),DATE_ADD(CURDATE(),INTERVAL-WEEKDAY(CURDATE())DAY);每月第一天:SELECTCURDATE(),DATE_SUB(CURDATE(),INTERVALDAY(CURDATE())-1DAY);
类别:DB | 阅读(2384)| 回复(0)| (1) 阅读全文>>
Tags : MySQL 发表时间: 2016-05-21 20:47:58
mysql>showprocesslist;+—–+————-+——————–+|Id|User|Host|db|Command|Time|State|Info+—–+————-+——————–+|207|root|192.168.0.2:51621|mytest|Sleep|5||NULL|208|root|192.168.0.2:51622|mytest|Sleep|5||NULL|220|root|192.168.0.2:51676|mytest|Query|84|locked|selectname,culture,value,typefrombookwhereid=1说明各列的含
类别:DB | 阅读(1704)| 回复(0)| (0) 阅读全文>>
Tags : mysql ,Hibernate 发表时间: 2015-11-30 18:56:14
最近项目中遇到了这样的情况,mysql数据库中的字段为datetime类型,通过Hibernate映射mysql中的某张表的实体对象类型为java.util.Date,但是我想查找包括当天的时间在内的所有数据信息,比如说:2008-08-08到今天为止的所有数据,可是当天的数据无法取到,后来和同事找了相关的资料得以解决.以下是mysql数据库的表:CREATETABLE`cl_t_loginfo`(`Id`bigint(20)NOTNULLauto_increment,`userType`int(1)defaultNULL,`role`int(1)defaultNULL,`user`varch
类别:DB | 阅读(2322)| 回复(0)| (0) 阅读全文>>
Tags : MySQL 发表时间: 2015-11-18 11:28:35
删除表中重复记录,只保留一条:deletefrom表名where字段IDin(select*from(selectmax(字段ID)from表名groupby重复的字段havingcount(重复的字段)>1)asb);实例:2.当想要为某一个表建立一个唯一索引,由于表中有重复记录而无法进行时,需要删除重复记录。例表deptid_noid_name100'AAA'101'BBB'102'CCC'103'DDD'100'EEE'100'FFF'103'GGG'请写一条(或一组)SQL语句,删除重复的行,但重复的行中需要保留一行,如上表,id_no=100需要删除2行,保留一行,id_no=
类别:DB | 阅读(2066)| 回复(0)| (1) 阅读全文>>
Tags : 饿了么,MySQL,异地多活 发表时间: 2021-12-16 23:15:38
讲师介绍陈永庭,饿了么框架工具部高级架构师,主要负责MySQL异地双向数据复制,支撑饿了么异地多活项目。曾就职于WebEx、Cisco、腾讯等公司。今天我主要分享饿了么多活的底层数据实施,会和大家介绍在整个多活的设计和实施过程中我们是怎么处理异地数据同步的,而这个数据同步组件在我们公司内部称之为DRC。在讲DRC或者讲数据复制之前,先跟大家回顾一下异地多活的背景。去年我们在做多活调研的时候,整个公司所有的业务服务都是部署在北京机房,服务器大概有四千多台,灾备的机器是在云端,都是虚拟机,大概有三千多台。当时我们峰值的业务订单数量已经接近了千万级别,但是基本上北京机房(IDC)已经无法再扩容了,也
类别:架构 | 阅读(690)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,索引优化,性能分析,Explain 发表时间: 2021-12-07 23:57:48
1.explain是什么使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。2.explain能干吗可用于分析:表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询3.explain怎么分析执行计划包含的信息如下:各字段解释3.1idselect查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。分为三种情况:3.1.1id相同,执行顺序由上至下id相同,执行顺序从上到下,搭配table列进行观察可知,执行顺序为t1->t3
类别:数据库 | 阅读(516)| 回复(0)| (0) 阅读全文>>
Tags : 数据库,mysql,大表 发表时间: 2021-11-21 23:36:09
1.直接添加字段ALTERTABLEmy_tableADDnameVARCHAR(64)DEFAULT''COMMENT'名字';方法适合十几万的数据量,可以直接进行加字段操作,但是,线上的一张表如果数据量很大,执行加字段操作就会锁表,这个过程可能需要很长时间甚至导致服务崩溃,那么这样操作就有风险。2.临时表方式①创建一个临时的新表,首先复制旧表的结构(包含索引);createtablemy_table_copylikemy_table;②给新表加上新增的字段,注意,此时新表是空表,加字段很快;③复制旧表数据到新表;insertintomy_table_copy(id,age)selectid
类别:数据库 | 阅读(1505)| 回复(0)| (0) 阅读全文>>
Tags : 数据库,mysql,主库 发表时间: 2021-11-12 08:11:08
伽蓝八戒技术团队数据库备份是保障猪八戒数据安全必不可少的一部分,在猪八戒MySQL数据库上我们通常进行热备和binlog备份,目的是能回溯、恢复企业生产数据。其中基于binlog和备份恢复是日常数据库运维中一定会遇到的操作,本文通过一次案例介绍如何在误删除之后基于已有备份和binlog恢复数据以及什么样的备份是可以进行数据恢复的。背景MySQL5.6.40,库比较小,row+gtid复制环境,但由于以前种种原因,备份还原在从库后,开启复制存在大量1062,1032错误,gtid卡在靠前位置。做复制的时候没有任何从库,每小时的备份也被运维停了。以前从来没遇到过这种情况,相对测试环境正式环境比较复
类别:数据库 | 阅读(536)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,datetime,timestamp,日期 发表时间: 2021-11-04 16:59:31
这个问题相信大家或多或少应该都了解过吧,那么这个问题简单么?说实话不难,在面试一些初中级开发的时候偶尔也会简单问下,不过说实话许多人都知道,但回答的却不全面。我以前学习的时候曾经参考过网上的一些文章,不过许多文章基本都是抄来抄去,回答的要么有问题要么不全面。而本文的目的就是,希望通过本文就能让大家搞清楚搞明白他们的区别,不用再去网上翻来覆去地查资料了。一、相同点datetime和timestamp都可以表示YYYY-MM-DDHH:MM:SS这种年月日时分秒格式的数据。并且从MySQL5.6.4之后这两者都可以包含秒后的小数部分,精度最高为微妙(6位)。这里有一个点需要注意,就是在MySQL5
类别:数据库 | 阅读(578)| 回复(0)| (0) 阅读全文>>
Tags : 问题, 性能, 库存, MySQL, 活动 发表时间: 2017-10-21 00:59:39
  最近业务试水电商,接了一个秒杀的活。之前经常看到淘宝的同行们讨论秒杀,讨论电商,这次终于轮到我们自己理论结合实际一次了。  ps:进入正文前先说一点个人感受,之前看淘宝的ppt感觉都懂了,等到自己出解决方案的时候发现还是有很多想不到的地方其实都没懂,再次验证了“细节是魔鬼”的理论。并且一个人的能力有限,只有大家一起讨论才能想的更周全,更细致。好了,闲话少说,下面进入正文。 一、秒杀带来了什么?    秒杀或抢购活动一般会
类别:架构 | 阅读(1702)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,数据库,数据迁移,架构 发表时间: 2017-01-11 21:11:39
一为什么要迁移MySQL迁移是DBA日常维护中的一个工作。迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性。就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地方,铸就内心神往的城堡。生产环境中,有以下情况需要做迁移工作,如下:磁盘空间不够。比如一些老项目,选用的机型并不一定适用于数据库。随着时间的推移,硬盘很有可能出现短缺;业务出现瓶颈。比如项目中采用单机承担所有的读写业务,业务压力增大,不堪重负。如果IO压力在可接受的范围,会采用读写分离方案;机器出现瓶颈。机器出现瓶颈主要在磁盘IO能力、内存、CPU,此时除了针对瓶颈做一些优化以外,选择迁移是不错的方案;项目
类别:架构 | 阅读(1169)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,分库分表 发表时间: 2016-08-18 18:07:28
分库分表是MySQL永远的话题,一般情况下认为MySQL是个简单的数据库,在数据量大到一定程度之后处理查询的效率降低,如果需要继续保持高性能运转的话,必须分库或者分表了。关于数据量达到多少大是个极限这个事儿,本文先不讨论,研究源码的同学已经证实MySQL或者Innodb内部的锁粒度太大的问题大大限制了MySQL提供QPS的能力或者处理大规模数据的能力。在这点上,一般的使用者只好坐等官方不断推出的优化版本了。在一般运维的角度来看,我们什么情况下需要考虑分库分表?首先说明,这里所说的分库分表是指把数据库数据的物理拆分到多个实例或者多台机器上去,而不是类似分区表的原地切分。原则零:能不分就不分。是的
类别:编程开发 | 阅读(1755)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,MariaDB ,性能优化 发表时间: 2016-07-02 13:46:42
MySQL是一个强大的开源关系数据库管理系统(简称RDBMS)。它发布于1995年(20年前)。它采用结构化查询语言(SQL),这可能是数据库内容管理中最流行的选择。最新的MySQL版本是5.6.25,于2015年5月29日发布。关于MySQL一个有趣的事实是它的名字来自于MichaelWidenius(MySQL的创始人)的女儿“My”。尽管有许多关于MySQL有趣的传闻,不过本文主要是向你展示一些有用的实践,以帮助你管理你的MySQL服务器。MySQL性能优化2009年4月,MySQL被Oracle收购。其结果是MySQL社区分裂,创建了一个叫MariaDB的分支。创建该分支的主要原因是为
类别:MySQL | 阅读(1383)| 回复(0)| (0) 阅读全文>>
Tags : MySQL优化 发表时间: 2016-06-29 21:02:55
今天一个朋友向我咨询怎么去优化MySQL,我按着思维整理了一下,大概粗的可以分为21个方向。还有一些细节东西(tablecache,表设计,索引设计,程序端缓存之类的)先不列了,对一个系统,初期能把下面做完也是一个不错的系统。1.要确保有足够的内存数据库能够高效的运行,最关建的因素需要内存足更大了,能缓存住数据,更新也可以在内存先完成。但不同的业务对内存需要强度不一样,一推荐内存要占到数据的15-25%的比例,特别的热的数据,内存基本要达到数据库的80%大小。2.需要更多更快的CPUMySQL5.6可以利用到64个核,而MySQL每个query只能运行在一个CPU上,所以要求更多的CPU,更快
类别:MySQL | 阅读(2349)| 回复(0)| (0) 阅读全文>>