[转自:linuxme.blog.51cto.com/1850814/383742]1.主从mysqlserver的工作原理:(如图及其过程分析)过程:Mysql的复制(replication)是一个异步的复制,从一个Mysqlinstace(称之为Master)复制到另一个Mysqlinstance(称之Slave)。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在Master(IO进程)上。要实施复
系统 2019-08-29 23:03:26 2480
mysql字符集说明一、mysql中涉及的几个字符集Øcharacter-set-server/default-character-set:服务器字符集,默认情况下所采用的。Øcharacter-set-database:数据库字符集。Øcharacter-set-table:数据库表字符集。优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-ser
系统 2019-08-12 01:54:32 2480
原文:MySQL性能、监控与灾难恢复监控方案:up.timehttp://www.uptimesoftware.com/收费Cactihttp://www.cacti.net/KDESystemGuard(KSysGuard)http://docs.kde.org/stable/en/kdebase-workspace/ksysguard/index.htmlGnomeSystemMonitorhttp://library.gnome.org/users/
系统 2019-08-12 01:53:10 2480
今天从MYSQL数据库抓取时,发生了Cannotconvertvalue'0000-00-0000:00:00'fromcolumn10toTIMESTAMP异常google了一下,大概意思是MySQL中的Datetime值无法再JAVA中可靠的被表示,按照JDBC和SQL的标准默认情况下产生异常。JDBC允许用下列的值对zeroDateTimeBehavior属性来设置这些处理方式,exception(thedefault),whichthrowsanS
系统 2019-08-12 01:53:03 2480
PERCONAPERFORMANCECONFERENCE2009上,来自雅虎的几位工程师带来了一篇”EfficientPaginationUsingMySQL“的报告,有很多亮点,本文是在原文基础上的进一步延伸。首先看一下分页的基本原理:mysql>explainSELECT*FROMmessageORDERBYidDESCLIMIT10000,20\G*****************1.row**************id:1select_type:
系统 2019-08-12 01:54:48 2479
对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。经过对MySQLinnodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。1.一条SQL语句插入多条数据。常用的插入语句如:1234INSERTINTO`insert_table`(`datetime`,`uid`,`content`
系统 2019-08-12 01:53:00 2479
一、复制机制的实现原理从高层来看,复制分成三步:(1)master将改变记录到二进制日志(binarylog)中(这些记录叫做二进制日志事件,binarylogevents);(2)slave将master的binarylogevents拷贝到它的中继日志(relaylog);(3)slave重做中继日志中的事件,将改变反映它自己的数据。二、复制实现级别1.Row日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改。优点:在row
系统 2019-08-12 01:54:33 2478
来源:http://yingxiong.javaeye.com/blog/451208本文实例,运行于MySQL5.0及以上版本。MySQL赋予用户权限命令的简单格式可概括为:grant权限on数据库对象to用户一、grant普通数据用户,查询、插入、更新、删除数据库中所有表数据的权利。grantselectontestdb.*tocommon_user@'%'grantinsertontestdb.*tocommon_user@'%'grantupdat
系统 2019-08-12 01:51:35 2478
在大型互联网应用中,随着用户数的增加,为了提高应用的性能,我们经常需要对数据库进行分库分表操作。在单表时代,我们可以完全依赖于数据库的自增ID来唯一标识一个用户或数据对象。但是当我们对数据库进行了分库分表后,就不能依赖于每个表的自增ID来全局唯一标识这些数据了。因此,我们需要提供一个全局唯一的ID号生成策略来支持分库分表的环境。下面来介绍两种非常优秀的解决方案:1.数据库自增ID--来自Flicker的解决方案因为MySQL本身支持auto_increme
系统 2019-08-12 01:32:23 2478
在数据库表中有一个对varchar类型的数值进行desc排序,很简单的要求吧。可是奇怪的现象出现了表中的数据不会根据从高到底进行排序了瞬间有点泪奔的感觉呀还好经过高手指点啊。所以想和大家分享一下希望下一个mysql初学者以后不要像我一样了啊还是废话少说,看代码吧如:有一张T_TESTDEMO表,其有两个DEMOID,DEMONAME字段,其中DEMOID是int类型,DEMONAME是VARCHAR类型但是存放的是认为是数值类型的数据,里面的数据如下:1,
系统 2019-08-12 01:32:23 2478
在MySQL中,使用auto_increment类型的id字段作为表的主键。通常的做法,是通过“selectmax(id)fromtablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表以“X锁“,待获得max(id)的值以后,再解锁。这种做法需要的步骤比较多,有些麻烦,而且并发性也不好。有没有更简单的做法呢?答案之一是通过selectLAST_INSERT_ID()这个操作。乍一看,它和selectmax(id)很象,但实际上它
系统 2019-08-12 01:55:16 2477
在使用MYSQL的selectdistinctnamefromtable语句时,输出的只是去重之后name字段的信息,而希望的是能够输出考生ID、考试时间、考试成绩等的信息。使用selectdistinctname,sorcefromtable结果发现去重不起作用,因为MYSQL认为要sorce和name同时重复才会去除。最终解决办法如下:select*,count(distinctname)fromtablegroupbyname如果SQL语句还有lim
系统 2019-08-12 01:54:51 2477
Mysql线程池优化我是总结了一个站长的3篇文章了,这里我整理到一起来本文章就分为三个优化段了,下面一起来看看。Mysql线程池系列一(ThreadpoolFAQ)首先介绍什么是mysqlthreadpool,干什么用的?使用线程池主要可以达到以下两个目的:1、在大并发的时候,性能不会因为过载而迅速下降。2、减少性能抖动threadpool的工作原理?线程池使用分而治之的方法来限制和平衡并发性。与默认的thread_handling不同,线程池将连接和线程
系统 2019-08-12 01:52:44 2477
一、对数据库的基本操作1.创建DATABASECREATEDATABASE用于创建数据库,基本语法如下:CREATEDATABASEdatabase_name下面来举个例子:我们希望创建一个名为"test_db"的数据库。我们使用下面的CREATEDATABASE语句:CREATEDATABASEtest_django可以通过CREATETABLE来添加数据库表。2.查看DATABASE创建之后我们可以用以下语法来查看我们的MySQL中有那些数据库(注意最
系统 2019-08-12 01:54:48 2476
1.简介MySQL数据库的导入,有两种方法:(1)先导出数据库SQL脚本,再导入;(2)直接拷贝数据库目录和文件。在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。2.方法一SQL脚本形式操作步骤如下:2.1.导出SQL脚本在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目录中)命令行,导出SQL
系统 2019-08-12 01:54:20 2476