mysql 优化工具

explain  profiling

 

建议提供以下信息

show table status like 'audit';
show create table audit;
show index from audit;
check table audit;

analyze table audit;

analyze 并不检查表是否有问题,只是重新分析一下键的分布情况。
check table/ repaire table 是检查和修复的语句

 

 set profiling=1;
show profiles;
show profile all for query 1\G 

 

sky@sky:~$ mysqlslap --create-schema=example --query="SELECT * FROM group_message force
index(group_message_author_subject) WHERE author = '3' subject LIKE 'weiurazs%'" --
iterations=10000
Benchmark
Average number of seconds to run all queries: 0.017 seconds
Minimum number of seconds to run all queries: 0.010 seconds
Maximum number of seconds to run all queries: 0.027 seconds
Number of clients running queries: 1 SELECT * FROM [TABLE] FORCE INDEX (myindex2) WHERE [column1] = [value1] AND [column2] = [value2] ORDER BY [id] DESC LIMIT0, 10;

insert ignore into

当我们想用SQL_NO_CACHE来禁止结果缓存时发现结果和我们的预期不一样,查询执行的结果仍然是缓存后的结果。其实,SQL_NO_CACHE的真正作用是禁止缓存查询结果,但并不意味着cache不作为结果返回给query。

 

mysql快速添加百万条记录的语句:

使用Insert Select语句插入记录时,必须遵循以下原则。
用Select语句选择数据时,不能从被插入数据的表中选择行。
指定插入的表后所包含的字段数目必须与Select语句中返回的字段数目相同。
指定插入的表后所包含的字段数据类型必须与Select语句中返回的字段数据类型相同或系统可以自动转换。
 

复制代码 代码如下:

INSERT INTO ler_items( classid, title, address, zipcode )
SELECT classid, title, address, zipcode
FROM ler_items
使用上面的SQL语句,可以在很短的时间内将ler_items表添加百万记录,用于数据库的测试很有帮助
 
命令行连接mysql数据库:

进入命令行,windows cmd,连接:

mysql -u 用户名 -p密码 -h 服务器IP地址 -P 服务器端MySQL端口号 -D 数据库名

注意:

    (1)服务器端口标志-P一定要大些以区别于用户-p,如果直接连接数据库标志-D也要大写;

    (2)如果要直接输入密码-p后面不能留有空格如-pmypassword;

    (3)命令结束段没有';'分号。

例子:

mysql -u lzpddd -pmypassword -h 192.168.1.88 -P 3306 -D mydb

D:\wamp\bin\mysql\mysql5.1.33\bin>mysql -u wbcloud -pwbcloud123 -h 192.168.1.156
-P 3306 -D linksus_cloud3

 

查看Mysql数据库大小 
 
1、进去指定schema 数据库(存放了其他的数据库的信息)
 
use information_schema
2、查询所有数据的大小
 
select concat(round(sum(DATA_LENGTH/1024/1024),2), 'MB') as data from TABLES
 
3、查看指定数据库的大小 
比如说 数据库apoyl
 
select concat(round(sum(DATA_LENGTH/1024/1024),2), 'MB') as data from TABLES where table_schema= 'apoyl' ;
4、查看指定数据库的表的大小
比如说 数据库apoyl 中apoyl_test表
 
select concat(round(sum (DATA_LENGTH/1024/1024),2), 'MB') as data from TABLES where table_schema= 'apoyl' and table_name= 'apoyl_test' ;

posted on 2014-08-07 22:52  andydaopeng  阅读(256)  评论(0编辑  收藏  举报

导航