通常应用需要对表中的数据进行翻页,如果数据量很大,往往会带来性能上的问题: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 root@sns 07:16:25 select count (*) from reply_0004 where thread_id = 5616385 and deleted = 0; +-+...
MySQL中的primary key功能,包括讲到了其对InnoDB使用的影响 在5.1.46中优化器在对primary key的选择上做了一点改动: Performance: While looking for the shortest index for a covering index scan, the optimizer did not consider the full row length fo...
MySQL在5.1引入了一个rename database操作,但在MySQL5.1.23后又不支持这个命令。可以说是一个实验性的功能,没有在生产中支持过(mysql-5.1 release在mysql-5.1.30),那么生产中我们有时为了追求完美需要改一下库名。怎么操作呢? 这里提供一个变通的方法 1...
关于MySQL的整型数据的内存溢出问题的应对方法,作者还列出了MySQL所支持的整型数据的存储空间支持大小 今天接到一个朋友电话说是觉的数据库被别人更改了,出现数据不对的问题 。经过很久的排查是数据类型溢出了(发生问题的版本是MySQL 5.1)。后来通过给朋友...
今天帮同事处理一个SQL(简化过后的)执行报错: 1 2 3 mysql select date_format( 2013-11-19 , Y-m-d ) timediff( 2013-11-19 , 2013-11-20 ); ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci, NUMER...
我们在用mysqldump备份数据时,有个选项是 where / -w,可以指定备份条件,这个选项的解释是: 1 -w, --where=name Dump only selected records. Quotes are mandatory 我们可以做个测试,例如: 1 mysqldump --single-transaction -w id 10000 mydb mytable...
众所周知,在MySQL中,如果直接 ORDER BY RAND() 的话,效率非常差,因为会多次执行。事实上,如果等值查询也是用 RAND() 的话也如此,我们先来看看下面这几个SQL的不同执行计划和执行耗时。 首先,看下建表DDL,这是一个没有显式自增主键的InnoDB表: 1 2 3...
通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询。例如下面这个SQL: 1 SELECT * FROM `t1` WHERE ftype=1 ORDER BY id DESC LIMIT 100, 10; 或者像下面这个不带任何条件的分页SQL: 1 SELECT * FROM `t1` ORDER BY id DESC LIMIT 100,...
MySQL中从库延迟状况排查的一则案例,针对其从库无业务状态下的CPU大量占用情况 今天给一个客户巡检的情况下发从库没有业务的情况mysqld的cpu的一个core占用100%.查主库慢查询也没有关于写的SQL. 可以说是典的单进程复制把一个cpu占满造成的.知道原因了,就好...
在MySQL中使用mysqlbinlog flashback的简单教程,可以很方便地恢复数据 简介: mysqlbinlog flashback功能是淘宝彭立勋(http://www.penglixun.com/)的一个很强劲的作品. 主要功能: 对rows格式的binlog可以进行逆向操作.delete反向生成insert, update生成反...