随笔分类 - 数据库
1
数据库优化与架构
摘要:Mysql默认查询是不分大小写的,可以在SQL语句中加入 binary来区分大小写;BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写例如 :select * from `test` where binary `name` = ...
阅读全文
摘要:在 /etc/my.cnf加上下面二句:skip-character-set-client-handshakecharacter-set-server = utf8
阅读全文
摘要:官方有写:http://dev.mysql.com/doc/mysql-repo-excerpt/5.6/en/linux-installation-yum-repo.htmlyum update #数据库服务器的安装 , 请自行在mysql官方找最新的rpmrpm -Uvh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpmyum install mysql-server
阅读全文
摘要:使用select into outfile xxx , load data infile xxx例如 :SELECT * into outfile '/tmp/out.txt' FROM `db1`.`test`;load data infile '/tmp/out.txt' into table `db2`.`test`;速度非常快,比insert快N+++倍
阅读全文
摘要:——先抄回来~~~首先看一下分页的基本原理:mysql> explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20G***************** 1. row **************id: 1select_type: SIMPLEtable: messagetype: indexpossible_keys: NULLkey: PRIMARYkey_len: 4ref: NULLrows: 10020Extra:1 row in set (0.00 sec)limit 10000,20的意思扫描满足条件的100
阅读全文
摘要:参考文章:http://showerlee.blog.51cto.com/2047005/1189484监控mysql,php-fpm,nginxhttp://www.zrwm.com/?p=6360https://github.com/jizhang/zabbix-templateszabbix的安装可以使用官方的yum安装;先安装epel的源:rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm #官方的,用不了#用这个rpm -Uvh http://dl.fedora.
阅读全文
摘要:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)可以在配置文件中加入:log_bin_trust_function_creators = 1已经运行的Mysql,可以直接show variables like
阅读全文
摘要:例如:PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
阅读全文
摘要:-- mysql慢查询日志相关参数-- 慢查询日志时间show variables like "long_query_time"; -- 将时间设置为2sset global long_query_time=2; -- 是否开启慢查询日志show variables like "slow_query_log";-- 打开慢查询日志set global slow_query_log='ON'; -- 查询一下文件show variables like "%slow%";使用mysqldumpslow可以将日志转化为可读格
阅读全文
摘要:官方文档:部分备份:http://www.percona.com/doc/percona-xtrabackup/2.1/innobackupex/partial_backups_innobackupex.htmlhttp://www.percona.com/doc/percona-xtrabackup/2.1/innobackupex/restoring_individual_tables_ibk.html增量备份:http://www.percona.com/doc/percona-xtrabackup/2.1/innobackupex/incremental_backups_innobac
阅读全文
摘要:默认情况下,计划任务没有开启,可以能过下面命令开启(一) 查看当前是否已开启事件计划:SHOW VARIABLES LIKE 'event_scheduler';(二) 开启事件计划(调度器)开关有4种方法: SET GLOBAL event_scheduler = ON;键值1或者ON表示开启;0或者OFF表示关闭;
阅读全文
摘要:在数据库服务器上,可以架构多个Mysql服务器,进行单机多实例的读写分离;可以通过mysqld_multi来进行多实例的管理,mysqld_multi是用perl写的脚本,原理是通过mysql_admin来进行多个数据库的操作;多实例的配置文件也有点不同,可以看作是多个mysql配置的集合;mysq...
阅读全文
摘要:使用Percona XtraBackup先安装依赖包yum install -y perl-DBD-MySQL perl-DBI perl-Time-HiRes libaio*到Percona官网下载Percona XtraBackup,安装然后执行热备份,官网有详细教程:http://www.percona.com/doc/percona-xtrabackup/2.1/howtos/setting_up_replication.html最后面的参数是备份的目录;#使用默认的 /etc/my.cnf 配置文件innobackupex --user=xxx --password=xxx /ho.
阅读全文
摘要:一,基本步骤1,创建在主从数据上都创建复制账号,权限选上super, replication slave , replication master(选上这个可以方便从库变成主库);2,配置主库和备库配置文件 /etc/my.cnf#masterlog_bin = mysql_binserver_id = 101 #unique id , 可以是Ip的最后几位#slavelog_bin = mysql_bin #和上面一致server_id = 102relay_log = /var/lib/mysql/mysql-relay-binlog_slave_updates = 1 read_only
阅读全文
摘要:mysql -uroot -p#input password use mysql;update user set host='%' where user='root';flush privileges;#ok密码root密码也可以改:先停止正在运行的mysql实例,在配置文件/etc/my.cnf里面加入skip-grant-tables, 重新启动Mysql或者使用bin/safe_mysqld --skip-grant-tables & 启动使用 mysql -u root 连接(现在已经可以无密码连接了)update user set passwo
阅读全文
摘要:USING用于表连接时给定连接条件(可以理解为简写形式),如SELECT * FROM table1JOIN table2 ON table1.id = table2.id使用 USING 可以写为SELECT * FROM table1JOIN table2 USING(id)就这么简单HAVING引入 HAVING 是因为 WHERE 无法和统计函数一起使用如表 order (定单)有如下字段:id, date, price, customer查找订单总额少于2000的客户可以这样写:SELECT customer, SUM(price) FROM orderGROUP BY custom
阅读全文
摘要:mysql默认的join是inner join,inner join 和 left join的区别看图:
阅读全文
摘要:CREATE PROCEDURE `test`.`new_procedure` ()BEGIN-- 需要定义接收游标数据的变量 DECLARE a CHAR(16); -- 游标 DECLARE cur CURSOR FOR SELECT i FROM test.t; -- 遍历数据结束标...
阅读全文
摘要:随着数据库的增长,innodb文件和日志文件会越来越大,如果是默认安装的mysql,这些文件一般是放在 /usr/lib/mysql下面进行转移:1,安全关闭mysqlmysqladmin -u root -p shutdown2,复制mysql文件夹,注意修改权限mv /var/lib/mysql /home/data/chown -R mysql.mysql /home/data/#还有,修改对象(文件)的安全上下文chcon -R -t mysqld_db_t /home/data3,修改配置/etc/my.cnf ,有童鞋说要修改 /etc/init.d/mysql启动文件,其实my.
阅读全文
摘要:下面是一部分比较重要的建议:1、选择正确的存储引擎以 MySQL为例,包括有两个存储引擎 MyISAM 和 InnoDB,每个引擎都有利有弊。MyISAM 适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都无法操作直到读操作完成。另外,MyISAM 对于 SELECT COUNT(*) 这类的计算是超快无比的。InnoDB 的趋势会是一个非常复杂的存储引擎,对于一些小的应用,它会比 MyISAM 还慢。但是它支持“行锁” ,于是在写操作比较多的时候,会更优秀。并且,他还支持更多的高级应用,比如:事务。
阅读全文
1