导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:356
阅读量:1663729
访问量:207485
至今:
×
博文->>搜索结果(耗时0.038秒) 博文列表>>
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 | 阅读(1570)| 回复(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 | 阅读(1985)| 回复(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 | 阅读(1532)| 回复(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 | 阅读(1530)| 回复(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 | 阅读(1378)| 回复(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 | 阅读(1396)| 回复(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 | 阅读(1760)| 回复(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 | 阅读(1261)| 回复(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 | 阅读(1951)| 回复(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 | 阅读(1493)| 回复(0)| (1) 阅读全文>>
Tags : 数据库,mysql,主库 发表时间: 2021-11-12 08:11:08
伽蓝八戒技术团队数据库备份是保障猪八戒数据安全必不可少的一部分,在猪八戒MySQL数据库上我们通常进行热备和binlog备份,目的是能回溯、恢复企业生产数据。其中基于binlog和备份恢复是日常数据库运维中一定会遇到的操作,本文通过一次案例介绍如何在误删除之后基于已有备份和binlog恢复数据以及什么样的备份是可以进行数据恢复的。背景MySQL5.6.40,库比较小,row+gtid复制环境,但由于以前种种原因,备份还原在从库后,开启复制存在大量1062,1032错误,gtid卡在靠前位置。做复制的时候没有任何从库,每小时的备份也被运维停了。以前从来没遇到过这种情况,相对测试环境正式环境比较复
类别:数据库 | 阅读(77)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,datetime,timestamp,日期 发表时间: 2021-11-04 16:59:31
这个问题相信大家或多或少应该都了解过吧,那么这个问题简单么?说实话不难,在面试一些初中级开发的时候偶尔也会简单问下,不过说实话许多人都知道,但回答的却不全面。我以前学习的时候曾经参考过网上的一些文章,不过许多文章基本都是抄来抄去,回答的要么有问题要么不全面。而本文的目的就是,希望通过本文就能让大家搞清楚搞明白他们的区别,不用再去网上翻来覆去地查资料了。一、相同点datetime和timestamp都可以表示YYYY-MM-DDHH:MM:SS这种年月日时分秒格式的数据。并且从MySQL5.6.4之后这两者都可以包含秒后的小数部分,精度最高为微妙(6位)。这里有一个点需要注意,就是在MySQL5
类别:数据库 | 阅读(101)| 回复(0)| (0) 阅读全文>>
Tags : 问题, 性能, 库存, MySQL, 活动 发表时间: 2017-10-21 00:59:39
  最近业务试水电商,接了一个秒杀的活。之前经常看到淘宝的同行们讨论秒杀,讨论电商,这次终于轮到我们自己理论结合实际一次了。  ps:进入正文前先说一点个人感受,之前看淘宝的ppt感觉都懂了,等到自己出解决方案的时候发现还是有很多想不到的地方其实都没懂,再次验证了“细节是魔鬼”的理论。并且一个人的能力有限,只有大家一起讨论才能想的更周全,更细致。好了,闲话少说,下面进入正文。 一、秒杀带来了什么?    秒杀或抢购活动一般会
类别:架构 | 阅读(1301)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,数据库,数据迁移,架构 发表时间: 2017-01-11 21:11:39
一为什么要迁移MySQL迁移是DBA日常维护中的一个工作。迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性。就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地方,铸就内心神往的城堡。生产环境中,有以下情况需要做迁移工作,如下:磁盘空间不够。比如一些老项目,选用的机型并不一定适用于数据库。随着时间的推移,硬盘很有可能出现短缺;业务出现瓶颈。比如项目中采用单机承担所有的读写业务,业务压力增大,不堪重负。如果IO压力在可接受的范围,会采用读写分离方案;机器出现瓶颈。机器出现瓶颈主要在磁盘IO能力、内存、CPU,此时除了针对瓶颈做一些优化以外,选择迁移是不错的方案;项目
类别:架构 | 阅读(842)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,分库分表 发表时间: 2016-08-18 18:07:28
分库分表是MySQL永远的话题,一般情况下认为MySQL是个简单的数据库,在数据量大到一定程度之后处理查询的效率降低,如果需要继续保持高性能运转的话,必须分库或者分表了。关于数据量达到多少大是个极限这个事儿,本文先不讨论,研究源码的同学已经证实MySQL或者Innodb内部的锁粒度太大的问题大大限制了MySQL提供QPS的能力或者处理大规模数据的能力。在这点上,一般的使用者只好坐等官方不断推出的优化版本了。在一般运维的角度来看,我们什么情况下需要考虑分库分表?首先说明,这里所说的分库分表是指把数据库数据的物理拆分到多个实例或者多台机器上去,而不是类似分区表的原地切分。原则零:能不分就不分。是的
类别:编程开发 | 阅读(1188)| 回复(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 | 阅读(1006)| 回复(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 | 阅读(2003)| 回复(0)| (0) 阅读全文>>
Tags : 高可用MySQL 发表时间: 2016-05-23 20:51:56
MySQL数据库作为最基础的数据存储服务之一,在整个系统中有着非常重要的地位,因此要求其具备高可用性是无可厚非的。有很多解决方案能实现不同的SLA(服务水平协定),这些方案可以保证数据库服务器在硬件或软件出现故障时服务继续可用。高性能性需要解决的主要有两个问题,即如何实现数据共享或同步数据,另一个是如何处理failover,数据共享一般的解决方案是通过SAN(StorageAreaNetwork)来实现,而数据同步可以通过rsync软件或DRBD技术来实现;failover的意思就是当服务器死机或出现错误时可以自动切换到其他备用的服务器,不影响服务器上业务系统的运行。本文重点介绍一下目前比较成
类别:架构 | 阅读(875)| 回复(0)| (0) 阅读全文>>
Tags : mysql优化,数据库 发表时间: 2016-05-16 20:23:21
最近一段时间由于工作需要,开始关注针对Mysql数据库的(`id`,`title`,`tags`,`keywords`,`content`,`readings`,`target`,`source`,`date`,`cateId`,`update_time`)VALUES(查询语句的相关优化方法。由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂。因此如何提高sq
类别:MySQL | 阅读(795)| 回复(0)| (0) 阅读全文>>
Tags : MySQL,行级锁,表级锁,页级锁 发表时间: 2016-03-29 21:04:21
在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。在数据库的锁机制中介绍过,在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎)。行级锁行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁。特点开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。表级锁表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,
类别:编程开发 | 阅读(904)| 回复(0)| (0) 阅读全文>>