技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL
    今天遇到一个奇怪的问题,明明已经建立了索引,select语句的explain也表明会利用这个索引,可是结果偏偏没有用索引,最后扫描了全表。 两个结构完全一样的sql语句: sql1: select * from table where col_a = 123 and col_b in (‘foo’,\'bar’) order by id desc; sql2: select * from table where col_a = 456 and col_b in (‘foo’,\'bar’) order by id desc; 结果sql1选择利用了col_a的索引,速度很快,sql2利用了主键ID的索引,扫描了全表(40w行)。 仔细分析,发现数据库中,col_a=456的记录数有近1万条,而col_a=123的记录数
    在 MySQL5.1.6 起,增加了一个不错的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由操作系统的计划任务来执行的工作。更值得 一提的是MySQL的事件调度...
    高并发地进行insert经常导致阻塞很长时间。 有些场景下我们并不需要知道insert之后的结果。因此可以采用insert delayed方法。 insert delayed是myisam对与sql标准的扩展,在innodb引擎下并不支持。 insert delayed之后,系统会立刻返回结果,使用last_inserted_id方法不能获得insert delayed得到的主键ID
    直到今天为止,MySQL依然只支持一个Slave从一个Master复制数据,虽然也可以做到一主多备(M->S),双主复制(MM)等架构,但是局限性依然很大。 例如最近我们遇到一个问题,需要为线上的集群搭建在线延时备份,即从线上的双主集群中再延伸出一组Slave,以防重要集群主备都宕机。按照现在MySQL的架构,要搭建这种在线备份,只能启动相同数据的实例来实现,假设线上有128个实例在提供服务,那么我就需要128个实例来做这128个实例的复制,这个管理成本是巨大的。 之前我们也有个方案,利用Perl脚本来做,参见这篇文章:点我阅读。这个方案的最大问题就是管理不方便,没有可以监控的地方,也不能随便停止脚本等等,如果完善这些部分,代码量太大,几乎就实现了一个MySQL Replication,那还不如利用MySQL的管理部分,在MySQL里实现多Master。
    此篇文章主要介绍的是MySQL数据库实际应用方面的操作。但是你必须要先登录到 MySQL数据库中,下面的操作是在MySQL数据库的实际提示符之下进行的,同时也要求每个相关命令以分号结束。 一、操作技巧 1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。 也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。 2、你可以使用光标上下键调出以前的命令。 二、显示命令 1、显示当前MySQL数据库服务器中的数据库列表: MySQL> SHOW DATABASES; 注意:MySQL库里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。 2、显示MySQL数据库中的数据表: MySQL> USE 库名; MySQL> SHOW TABLES; 3、显示数据表的结构: MySQL> DE
     MySQL数据库外部XA可以用在分布式数据库代理层,实现对MySQL数据库的分布式事务支持,例如开源的代理工具:ameoba[4],网易的DDB,淘宝的TDDL,B2B的Cobar等等。
     MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布式事务,需要应用层介入作为协调者(崩溃时的悬挂事务,全局提交还是回滚,需要由应用层决定,对应用层的实现要求较高).
    用HandlerSocket大量并发插入数据到多个InnoDB的表(都使用自增id)的时候就会大量出现167的错误,从而TPS下降极为厉害.
    文章主要讨论的是 MySQL 备份和其恢复机制,以及对维护数据表的正确维护,其中主要包括的两种不同表的类型有MyISAM与 Innodb,文中所设计的 MySQL 版本为 5.0.22。以下就是具体内容的描述。 目前 MySQL 支持的免费MySQL 备份工具有:mysqldump、mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb 所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump。 1、m
    以下的文章主要介绍的是MySQL数据类型,MySQL数据库中的5种数据类型是:字符型,文本型,数值型,逻辑型与日期型,以下就是文章的详细内容介绍,希望在你今后的学习中会有所帮助。 MySQL数据类型之一字符型 VARCHAR VS CHAR VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们都是用来储存字符串长度小于255的字符。 假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。 现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。 当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VA
    此文章主要介绍的是获得MySQL命令行中常用命令的小招数,如果你掌握了获得MySQL命令行中常用命令的小招这项技术,会在以后的学习或是工作中带来很大的帮助。以下就是文章的主要内容描述。 MySQL命令行常用命令 第一招、MySQL服务的启动和停止 net stop MySQL net start MySQL MySQL命令行常用命令 第二招、登陆MySQL 语法如下: MySQL -u用户名 -p用户密码 键入命令MySQL -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到MySQL中了,MySQL的提示符是: MySQL> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP MySQL命令行常用命令 第三招、增加新用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
     首先我们要知道,或许有一项技术存在很多理由让我们可以选择使用它,但是让我们不使用它往往只要有一个理由就足够了。选择一个软件产品同样也是如此。 MySQL数据库虽然应用很广泛,受到大家的青睐,但MySQL数据库也有负面的作用,下面就介绍五个不适用 MySQL数据库的给力理由。 1、MySQL(和PHP搭配之最佳组合)的授权方式 MySQL(和PHP搭配之最佳组合)采用双重授权(Dual Licensed),它们是GPL和MySQL(和PHP搭配之最佳组合) AB制定的商业许可协议。 如果你在一个遵循GPL的自由(开源)项目中使用MySQL(和PHP搭配之最佳组合),那么你可以遵循GPL协议使用MySQL(和PHP搭配之最佳组合)。然而,如果你的项目不是在GPL协议下的话,你必须为使用MySQL(和PHP搭配之最佳组合)来支付许可费用,或者你可能因为这个因素而将你的项目改为遵循GPL,那么你
    教科书上的B+Tree是一个简化了的,方便于研究和教学的B+Tree。然而在数据库实现时,为了 更好的性能或者降低实现的难度,都会在细节上进行一定的变化。下面以InnoDB为例,来说说。
    这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础 优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。降低 CPU 计算除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了。order by, group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的
    在上一篇文章里我们写了如何针对InnoDB清理空闲事务《如何杀掉空闲事务》,在@sleebin9 的提示下,这个功能不仅可以针对InnoDB,也可以用于所有MySQL的事务引擎。 如何在Server层实现呢,sql/sql_parse.cc的do_command()函数是个好函数,连接线程会循环调用do_command()来读取并执行命令,在do_command()函数中,会调用my_net_set_read_timeout(net, thd->variables.net_wait_timeout)来设置线程socket连接超时时间,于是在这里可以下手。
    来自国外问答SNS网站Quora的一个问题:XFS、ZFS和ext3这3个文件系统哪个能够与MySQL产生最佳的性能?对此,来自Facebook的资深数据库专家Domas Mituzas给出了自己的解答,他认为MySQL最适合XFS文件系统。 在XFS文件系统的Linux版本发布之前,选择适合的Linux文件系统很简单,追求原始性能通常倾向于使用ReiserFS,而重视数据完整性则首 选ext3。XFS Linux版本出现后,这一情况发生了改变。一项比较XFS、ReiserFS和ext3在原始性能方面优劣的测试显示,在大文件操作方面,XFS在所有 测试中一直处于领先地位。
    最近公司在MySQL的数据库上由于采用了高速的如PCIe卡以及大内存,去年在压力测试的时候突然发现数据库的流量可以把一个千M网卡压满了。随着数据库的优化,现在流量可以达到150M,所以我们采用了双网卡,在交换机上绑定,做LB的方式,提高系统的吞吐量。 但是在最近压测试的一个数据库中,mpstat发现其中一个核的CPU被软中...
      innobackupex 有非常好的一致性的备份功能。它会切好并输出的日志文件和日志的位置,这个来进行 slave 的初始化非常有效。另外,它可以同时工作在 MyISAM 和 innodb 的引擎中。听讲使用这个...
    MySQL数据库InnoDB存储引擎查询优化器实现的分析之附录
    目的 分析MySQL数据库的查询优化器如何优化InnoDB存储引擎的查询语句.
[ 共525篇文章 ][ 第9页/共27页 ][ |< ][ 5 ][ 6 ][ 7 ][ 8 ][ 9 ][ 10 ][ 11 ][ 12 ][ 13 ][ 14 ][ >| ]
赞助商广告
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1