【MySQL大表优化方案 【转载】】教程文章相关的互联网学习教程文章

Mysql优化方案(整理)

1.对于复杂查询,例如报表等多join的查询,尽量使用缓存,使用缓存的时候注意,now(),Randy(),currDate()等变化的函数是无法使用缓存,例如:SELECT username FROM user WHERE signup_date >= CURDATE(),可以使用变量代替函数(PHP); 2.对于复杂查询可以使用EXPLAIN解释优化sql,从数据量、索引等方面对sql进行优化处理。 3.对于确定返回一条数据的sql请使用limit 1; 4.关于索引,使用like ‘%username%’ 是无法应用索...

macos 新版mysql数据库中文显示问号乱码问题解决方案

老版数据库中文乱码问题解决方案: http://www.cnblogs.com/mojita/p/5347614.html 新版数据库中文乱码问题解决方案: /etc目录下自己建了一个my.cnf文件(需要最高权限,使用sudo su),然后写入内容: [client]default-character-set=utf8[mysqld]character-set-server=utf8 保存,修改。关掉重启mysql,OK。macos 新版mysql数据库中文显示问号乱码问题解决方案标签:utf8 client blog 乱码 重启 解决方案 问题 目录...

MySQL之当数据库数据源被锁(Table Metadata Lock)时的解决方案

1.关掉hibernate的所有线程池(选择退出IDE或者其他办法) 2.查看被锁的进程ID:show full processlist 3.杀掉该进程ID:kill + ID 4.提交导致数据源被锁的事务:COMMIT 或者 ROLLBACKMySQL之当数据库数据源被锁(Table Metadata Lock)时的解决方案标签:slist process proc 导致 nat mysq lis com 数据库数据 本文系统来源:http://www.cnblogs.com/johnnyzen/p/7788210.html

关于mysql无法添加中文数据的问题以及解决方案【图】

今天弄了一天的mysql数据库,就是被一个mysql数据库乱码的问题给缠住了。现在记录一下这个问题,虽然这个问题不是什么太大的事情,但还是记录一下。问题是这样的:1、先在mysql的安装文件当中,找到配置mysql数据库编码的文件。 2、修改这两处为utf8。3、创建一个名为test的数据库并且设置默认编码格式为utf84、创建一个名为charTest1的表,并指定编码为utf85、查看数据库的编码,已经全部改成了utf86、再看一下当前数据库的表的...

MySQL高可用解决方案---MHA【代码】

一主两从一管理,一共四台设备MHA的作用是做master的高可用,当主节点MySQL故障时,会将和主节点数据最接近的一个从节点提升为主节点,同时如果其他从节点有更新的数据也会同步到此“准主节点”上。如果在主节点有数据已经提交但是所有的从节点还未完成复制,则从节点提升为主节点后只能将此数据回退,没有别的办法。准备事项:1、同步时间ntpdate 172.18.0.12、配置主机域名,在主节点即node1上操作vim /etc/hosts 192.168.1.1...

mysql b-tree 索引下联合索引的顺序测试方案

使用联合索引需要注意的列顺序比如在使用select * from user where x=1 and y=2;的时候,应该需要建立的索引可能是 add key(x,y)如何确定索引的顺序一般经验而言可以使用select count(distinct x)/count(x) as x_selectivity, count(distinct y)/count(y) as x_selectivity, count(*), from user;************************row1***************************x_selectivity: 0.0001y_selectivity: 0.0312count(*) ...

使用percona-xtrabackup工具对mysql数据库的备份方案【代码】

localinstall -y percona-xtrabackup-2.2.9-5067.el6.x86_64.rpm2.编写备份数据库脚本:vim /data/scripts/backdb.sh#!/bin/bashback_time=`date +%Y%m%d%H%M%S` backpath="/app/mysqlbak" cd $backpath && /bin/mkdir $back_timeecho "start back ${back_time}" >> /app/mysqlbak/backdb.log # completely backup /usr/bin/innobackupex --defaults-file="/etc/my.cnf" --user=root --password=pass --socket=/tmp/mysql.sock $ba...

MYSQL问题解决方案:Access denied for user 'root'@'localhost' (using password:YES)

这两天在MyEclipse中开发Web项目时,连接MYSQL数据库,出现问题:Access denied for user ‘root‘@‘localhost‘ (using password:YES)。 经查找资料发现是root帐户默认不开放远程访问权限,所以需要修改一下相关权限。 解决方案: 打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。(WIN7默认安装,my.ini在C:\ProgramData\MySQL\MySQL Server 5.6) 重启MySQL服务。 通...

“MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。”的解决方案【图】

Mysql安装版本:5.7.20 安装教程:在 https://dev.mysql.com/downloads/mysql/ 页面选择zip包下载(archive 为存档的意思)下载好后解压缩,配置好环境变量: 配置好环境变量后,在命令提示符中以管理员身份运行后,输入如下指令cd /d E:\mysql-5.7.20-winx64\bin(进入自己解压后mysql的bin文件) mysqld install mysqld --initialize-insecure(先在mysql的bin目录下执行mysqld --initialize-insecure (不设置root密码,建议...

mysql开启skip-name-resolve 导致root@127.0.0.1(localhost)访问引发的ERROR 1045 (28000)错误解决方案【代码】

.171 -uroot -p123456 根据网友经验(https://www.cnblogs.com/yjf512/p/3803762.html),vi /etc/my.cnf[mysqld] skip-name-resolve重启mysql,发现远程访问msyql速度上来了,解决问题。 然而引发了新的问题: 但是却发现msyql(mysql -h127.0.0.1 -uroot -p123456)无法本地访问:[root@localhost ~]# mysql -h127.0.0.1 -uroot -p123456 Warning: Using a password on the command line interface can be insecure. ERROR 1045...

【MySQL疑难杂症】如何将树形结构存储在数据库中(方案二 Path Enumeration)【图】

100), position VARCHAR(100), path VARCHAR(200) )  然后插入数据:现在我们来回答一下之前的问题:1.查询小天的直接上司。在上一个解决方案中能轻而易举做到的事情,在这个方案中却有些麻烦了,因为需要对path字段进行字符串处理,去掉“/”+自身id才是直接上司的path值。又开始一顿骚操作:SELECT e1.eid,e1.ename FROM employees2 e1,employees2 e2 WHERE e2.ename = ‘小天‘ AND e1.path = REPLACE(e2.path,CONCAT(‘/‘,e...

【MySQL疑难杂症】如何将树形结构存储在数据库中(方案一、Adjacency List)【代码】【图】

) RETURNS varchar(1000) CHARSET gb2312 BEGINDECLARE superiors VARCHAR(1000) DEFAULT ‘‘;DECLARE sTemp INTEGER DEFAULT uid;DECLARE tmpName VARCHAR(20);WHILE (sTemp>0) DOSELECT parent_id into sTemp FROM employees where eid = sTemp;SELECT ename into tmpName FROM employees where eid = sTemp;IF(sTemp>0)THENSET superiors = concat(tmpName,‘,‘,superiors);END IF;END WHILE;SET superiors = LEFT(superiors,...

【MySQL疑难杂症】如何将树形结构存储在数据库中(方案三 Closure Table)【代码】【图】

TABLE employees3( eid INT, ename VARCHAR(100), position VARCHAR(100) )  一个表用来存储关系:CREATE TABLE emp_relations( root_id INT, depth INT, is_leaf TINYINT(1), node_id INT )  这里的root_id用来存放以其为根节点的路径,node_id表示节点处的eid,depth表示根节点到该节点的深度,is_leaf表示该节点是否为叶子节点。接下来插入数据:可以看出,这个关系表有点大,我们先来看看查询效果如何:1.查询小天的直接上...

关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案【图】

在win7,win10,vs2015,vs2017之间折腾了两天,死活就是调不出来Mysql数据源。真是活见鬼了。 直接说方案吧。 一,卸载你所安装过的mysql-connector-net、mysql-for-visualstudio-1.2.7、mysql-installer-community、mysql-installer-web-community等为了实现连接的应用或者驱动,在控制面板,卸载程序里搜,搜到这个右键卸载。清理,重启,关掉VS。 二,确认ODBC驱动,在控制面板\所有控制面板项\管理工具 中查看ODBC数据源64位。...

mysql双主模式方案【代码】【图】

cd /data/packages/src tar -zxvf ../cmake-3.2.3.tar.gz cd cmake-3.2.3/ ./bootstrap gmake make install cd ../ tar xf mysql-5.6.34.tar.gz cd mysql-5.6.34 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DWITH_SSL=bundled -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=...