
mysql
大浪淘沙2023
可以叫我码农,也可以叫我程序猿!
展开
-
mysql基础
1.表名重命名:rename tables push_online to push_online_1;2.在使用OR子句时,sql语句数不走索引的,如下:select * from file where rating = 'R' or rating = 'NC-17';优化方法:select * from file where rating = 'R' union原创 2013-08-20 10:10:15 · 693 阅读 · 0 评论 -
偶遇TCP: time wait bucket table overflow错误
1.在OS日志messages中发现一直在打印如下信息Aug 27 11:10:36 mysql41 kernel: TCP: time wait bucket table overflowAug 27 11:10:45 mysql41 kernel: printk: 149 messages suppressed.Aug 27 11:10:45 mysql41 kernel: TCP原创 2013-08-28 16:05:15 · 1742 阅读 · 0 评论 -
MySQL MyISAM/InnoDB高并发优化经验
最近做的一个应用,功能要求非常简单,就是 key/value 形式的存储,简单的 INSERT/SELECT,没有任何复杂查询,唯一的问题是量非常大,如果目前投入使用,初期的单表 insert 频率约 20Hz(次/秒,我喜欢这个单位,让我想起国内交流电是 50Hz),但我估计以后会有 500Hz+ 的峰值。目前的工作成果,额定功率 200Hz(CPU 占用 10 – 20,load avg =转载 2013-09-05 10:11:54 · 709 阅读 · 0 评论 -
MySQL InnoDB存储引擎的参数详解
innodb_data_home_dir这是InnoDB表的目录共用设置。如果没有在 my.cnf 进行设置,InnoDB 将使用MySQL的datadir目录为缺省目录。如果设定一个空字串,可以innodb_data_file_path中设定绝对路径。innodb_data_file_path单独指定数据文件的路径与大小。数据文件的完整路径由 innodb_data_ho转载 2013-09-05 10:14:52 · 1024 阅读 · 0 评论 -
mysql limit分页查询优化写法
在mysql中进行分页查询时,一般会使用limit查询,而且通常查询中都会使用orderby排 序。但是在表数据量比较大的时候,例如查询语句片段limit 10000, 20,数据库会读取10020条数据,然后把前10000条丢弃,把最后的20条返回给你,这种消耗是可以避免的,也是没必要的。下边介绍几种优化方法: 优化方法1(让分页操作在索引中进行): 一般表中经常作为条件查询的列都会转载 2013-09-05 10:29:42 · 2252 阅读 · 0 评论 -
MySQL如何避免使用Linux的swap分区而提升读写性能
Linux有很多很好的内存、IO调度机制,但是并不会适用于所有场景。对于DBA来说Linux比较让人头疼的一个地方是,它不会因为MySQL很重要就避免将分配给MySQL的地址空间映射到swap上。对于频繁进行读写操作的系统而言,数据看似在内存而实际上在磁盘是非常糟糕的,响应时间的增长很可能直接拖垮整个系统。这篇blog主要讲讲我们作为DBA,怎样尽量避免MySQL惨遭swap的毒手。首先我转载 2013-09-05 09:57:05 · 948 阅读 · 0 评论 -
MySQL Innodb 存储引擎参数优化
InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它转载 2013-09-05 10:16:46 · 1885 阅读 · 0 评论 -
MySQL my.cnf参数配置优化详解
PS:本配置文件针对Dell R710,双至强E5620、16G内存的硬件配置。CentOS 5.6 64位系统,MySQL 5.5.x 稳定版。适用于日IP 50-100w,PV 100-300w的站点,主要使用InnoDB存储引擎。其他应用环境请根据实际情况来设置优化。# 以下选项会被MySQL客户端应用读取。# 注意只有MySQL附带的客户端应用程序保证可以读取这段内容。转载 2013-09-05 10:21:04 · 2291 阅读 · 0 评论 -
让你1秒看清mysql服务器问题所在
我们知道 "SHOW [FULL] PROCESSLIST" 能显示哪些线程正在运行。当然用 mysqladmin processlist 也是可以的。如果有SUPER权限,还可以看到所有线程。否则,只能看到自己的线程(也就是,与正在使用的MySQL账户相关的线程),这里有个提示:不要轻易给程序连接的的super权限,否则,连接到max_connection后,后果不堪设想,因为被保留来管理(转载 2013-09-05 10:46:28 · 673 阅读 · 0 评论 -
mysql 常见问题及解决方法
1.innobackupex备份时遇到的错误,错误信息如下:131130 03:12:02 innobackupex: Connected to database with mysql child process (pid=26080)innobackupex: Error: mysql child process has died: sh: mysql: command not fou原创 2013-12-02 17:52:06 · 722 阅读 · 0 评论 -
ERROR 1093 (HY000) 错误的原因及解决方法!
今天在使用存储过程删除重复记录的时候,报如上错误beginTime: 20131216_14:28:08Begin delete the pim_sms_info_1's duplicate data....ERROR 1093 (HY000) at line 8: You can't specify target table 'pim_sms_info_1' for updat原创 2013-12-16 15:42:42 · 3778 阅读 · 0 评论 -
mysql存储过程 在动态SQL内获取返回值
很简单,不需要使用游标循环来读取,直接select * into @变量就OK了,还可以传递参数来执行。Sql代码 #拼接查询总记录的SQL语句 set v_sqlcounts = concat('select count(*) into @recordcount from ',v_tables,v_where); set @sqlcounts := v_转载 2014-01-02 20:53:01 · 2627 阅读 · 1 评论 -
MySQL UUID函数的详解
文章来源:http://www.mysqlops.com/2011/03/01/mysql-uuid.htmlMySQL UUID函数的详解MySQL中可以有二类用于生成唯一值性质的工具:UUID()函数和自增序列,那么二者有何区别呢?我们就此对比下各自的特性及异同点:l 都可以实现生成唯一值的功能;l UUID是可以生成时间、空间上都独一无二的值;自增转载 2014-01-05 13:56:04 · 847 阅读 · 0 评论 -
MySQL保存emoji
emoji是iso和Mac OS系统特有的一系列“表情符号”在微博+ios设备泛滥的今天,很多人的微博中都会嵌入类似的表情符号。不同于传统上UTF8字符的3个字节(中文地区的传统),emoji采用了4个字节的编码方式。这一个不算大的改变会导致系统出现类似的报错。Incorrect string value: ‘xF0x9Fx8Cx9FVi…’ for column ‘nick_name’转载 2014-01-07 13:57:56 · 1604 阅读 · 0 评论 -
Table is crashed and should be repaired
1.错误信息:错误如下:mysql> select @@version;+-----------+| @@version |+-----------+| 5.0.77 |+-----------+1 row in set (0.00 sec)mysql> select * from poller_output;ERROR 145 (HY000):原创 2014-01-09 15:37:18 · 763 阅读 · 0 评论 -
pt-table-checksum
参考:http://www.percona.com/doc/percona-toolkit/2.1/pt-table-checksum.htmlhttps://bugs.launchpad.net/percona-toolkit/+bug/919499http://www.cr173.com/html/23093_1.html环境信息:双主架构(master-master)原创 2014-01-14 18:05:37 · 1030 阅读 · 0 评论 -
Last_IO_Error: error connecting to master Last_IO_Errno: 2003解决方法
1.场景:在配置mysql双主结构后,启动后提示如下错误信息提示:Last_IO_Errno: 2003Last_IO_Error: error connecting to master 'coolcloud@XXXX:XX' - retry-time: 60 retries: 864002.排查过程(1) 在配置文件中排查了与bindaddress和skip-net原创 2014-01-17 17:25:20 · 10618 阅读 · 1 评论 -
MySql: charset 和 collation的设置
charset 和 collation 有多个级别的设置:服务器级、数据库级、表级、列级和连接级 1.服务器级 查看设置:show global variables like 'character_set_server'; 和 show global variables like 'collation_server'; 修改设置:在OPTION FILE (/etc/mys转载 2014-01-28 13:49:02 · 1028 阅读 · 0 评论 -
mysql CPU消耗过大的情况分析
1.原理:cpu消耗过大通常情况下都是有慢sql造成的,这里的慢sql包括全表扫描,扫描数据量过大,内存排序,磁盘排序,锁争用等待等; 2.表现现象sql执行状态为:sending data,Copying to tmp table,Copying to tmp table on disk,Sorting result,locked; 3.解决方法:用户可以登录到rds,通转载 2014-02-10 14:16:34 · 5575 阅读 · 0 评论 -
mount远程主机的必要条件
1.如果不同的网段中间必须互通2.必须在/etc/exports文件中加入需要挂载的IP段的地址/coolpad/file/dbbackup/ 192.168.0.*(rw,sync,no_root_squash)/coolpad/file/dbbackup/ 192.168.50.*(rw,sync,no_root_squash)原创 2014-02-10 10:21:27 · 816 阅读 · 0 评论 -
MySQL binlog 格式(Mixed,Statement,Row Level)
mysql replication binlog logging level推荐用mixed,默认使用statement,基于上下文。MySQL Replication复制可以是基于一条语句(Statement level),也可以是基于一条记录(Row level),可以在MySQL的配置参数中设定这个复制级别,不同复制级别的设置会影响到Master端的b转载 2014-02-14 14:36:49 · 674 阅读 · 0 评论 -
single-transaction 和master-data的用法
mysqldump -p -S /data/mysqldata1/sock/mysql.sock --single-transaction --master-data=2 --database db1 db2 db3 > db.sql1、single-transaction官方解释如下:--single-transaction: Creates a consistent原创 2014-02-14 15:04:22 · 3524 阅读 · 0 评论 -
XtraBackup备份MySQL
出处:http://blog.itpub.net/29254281/viewspace-1082297/XtraBackup是一款开源免费的MySQL热备份软件。对于MyISAM,他使用锁机制进行全量备份。对于InnoDB,他启用类似归档的方式,不仅可以进行全量备份,还可以进行增量备份。全量备份大致过程如下,首先,找到备份开始时检查点的LSN,复制此LSN之后的重做日志到x转载 2014-02-17 20:42:26 · 768 阅读 · 0 评论 -
邪门的Received lower prio advert, forcing new election
邪门的Received lower prio advert, forcing new election原创 2014-02-19 15:57:16 · 8354 阅读 · 1 评论 -
mysql: Character set 'utf8mb4' is not a compiled character set and is not specified in the '/usr/sha
1.场景:由于之前mysql中一起使用utf8编码,最近由于emoji表情的原因,需要使用utf8mb4编码操作如下:修改配置文件/etc/my.cnf:[client]default-character-set=utf8mb4[mysqld]character-set-client-handshake=FALSEcharacter-set-server=utf8m原创 2014-02-20 11:56:51 · 11879 阅读 · 2 评论 -
偶遇双主架构中dml语句无法在slave上执行。
解决方法:请参考http://www.dataguru.cn/article-2610-1.html原创 2014-04-30 14:19:55 · 530 阅读 · 0 评论 -
mysql5.6安装 mysql.slave_master_info表不存在的解决方法
1.在安装mysql 5.6.15时,安装完成后,后台日志报如下警告信息:2014-01-08 13:47:34 22946 [Warning] InnoDB: Cannot open table mysql/slave_master_info from the internal data dictionary of InnoDB though the .frm file for the ta原创 2014-01-08 14:40:29 · 16843 阅读 · 1 评论 -
mysql sql_log_bin运用实例
参考网址:http://blog.itpub.net/22664653/viewspace-720582/原创 2014-07-17 16:44:09 · 4667 阅读 · 0 评论 -
Error_code: 1236 log event entry exceeded max_allowed_packet 错误解决办法
场景:在生产环境中的数据库master-err.log日志中显示130111 20:48:07 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase原创 2014-07-21 14:14:47 · 3200 阅读 · 0 评论 -
MySQL主库xtrabackup备份导致应用异常
http://www.dbunix.com/?p=3277http://blog.itpub.net/22664653/viewspace-754714/转载 2014-07-21 15:09:08 · 727 阅读 · 0 评论 -
The table 'pre_common_session' is full, Error_code: 1114解决办法
1.今天早上收到邮件报警,信息vCould not execute Write_rows event on table coolpad_bbs.pre_common_session; The table 'pre_common_session' is full, Error_code: 1114; handler error HA_ERR_RECORD_FILE_FULL; the eve原创 2014-06-11 11:19:34 · 4615 阅读 · 0 评论 -
Can't lock file (errno: 170) 错误
mysql版本信息:admin@localhost : test 02:56:06> select @@version;+------------+| @@version |+------------+| 5.5.24-log |+------------+实验:(1)创建表结构原创 2014-07-22 15:02:54 · 3017 阅读 · 0 评论 -
MySQL Innodb日志机制深入分析
1.1. Log & CheckpointInnodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfile*里面。Innodb还有另外一个日志Undo log,但Undo log是存放在共享表空间里面的(ibdata*文件)。 由于Log和Checkpoint紧密相关,因此将这两部分合在一起分析。名词解释:LSN,日志序列号,Innodb的转载 2014-07-22 21:51:29 · 595 阅读 · 0 评论 -
MySQL 用户权限分配 Grant 语法详解
MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。grant select on testdb.* to common_user@'%'grant insert on testdb.* to common_user@'%'grant update on t转载 2014-10-11 11:24:29 · 648 阅读 · 0 评论 -
MySQL Memory 存储引擎浅析
需求源自项目中的MemCache需求,开始想用MemCached(官方站点:http://memcached.org/ ),但这个在Linux下面应用广泛的开源软件无官方支持的Windows版本。后来看到博客园在用NorthScale Memcached Server(官方站点:http://www.couchbase.com/products-and-services/memcached),原创 2014-11-27 09:50:24 · 492 阅读 · 0 评论 -
percona-xtrabackup-2.1.6 源码安装小记
1.下载地址址:http://www.percona.com/downloads/XtraBackup/LATEST/source/2.下载后,解压至安装目录#cd /usr/local/install/#tar zxvf percona-xtrabackup-2.1.6.tar.gz3.安装依赖包(使用root用户或者需要root权限)#yum ins原创 2014-01-08 17:26:16 · 2595 阅读 · 0 评论 -
mysql load data infile一则
今天在往mysql里面灌数据时遇到只导入部分列名的情况,导入时一直失败,把语法记录一下。LOAD DATA INFILE '/tmp/hosts.txt' INTO TABLE hosts fields terminated by ',' optionally enclosed by "" lines terminated by '\n' (ip,mgmt_user,原创 2015-01-13 16:57:11 · 449 阅读 · 0 评论 -
淘宝内部分享:MySQL & MariaDB性能优化
http://www.youkuaiyun.com/article/2015-01-20/2823634?reload=1摘要:MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,必须进行不断的优化,而优化是一个复杂的任务,本文描述淘宝数据库团队针对MySQL相关的数据库优化方案。编者按:MySQL是目前使用最多的开源数据库,但是MySQL数据库的转载 2015-01-21 10:07:24 · 550 阅读 · 0 评论 -
mysql metadata lock(一)
想必玩过mysql的人对Waiting for table metadata lock肯定不会陌生,一般都是进行alter操作时被堵住了,导致了我们在show processlist 时,看到线程的状态是在等metadata lock。本文会对mysql 的metadata lock做一个小小的总结,希望对大家有所帮助。 MDL是在5.5才引入到mysql,之前也有类似保护元数据的转载 2015-03-09 17:27:48 · 414 阅读 · 0 评论 -
oracle,mysql 上年、上月和上周时间
mysql上年的第一天:SELECT DATE_SUB( DATE_SUB( CURDATE(), INTERVAL 1 YEAR ),INTERVAL DAYOFYEAR(DATE_SUB( CURDATE(), INTERVAL 1 YEAR ))-1 DAY) 上年的最后一天:SELECT DATE_SUB( CURDATE(),INTERVAL DAYO转载 2015-03-09 14:01:56 · 514 阅读 · 0 评论