MySQL杂项(索引注意事项 快速导入导出数据 锁 字符集 慢查询)

? 关键字;  用多了会觉得离不开它。

一、索引注意事项

  1)like查询中 不以%开头,索引才可能被使用

  2)and、or 前后的字段都有索引的时候,查询才会用到索引

  3)如果字段是字符类型,而条件给的是数字类型,索引也会失效 

二、快速导入和导出数据(outfile infile)

  select * from t1 into "/tmp/t1.sql";

  load data infile '/tmp/b.txt' into table t1;自动适应列

  load data infile '/tmp/b.txt' into table t1(name); 导入到name列

  如果是innodb 先关闭自动提交,最后统一提交

  set autocommit=0

  load data ...

  set autocommit=1

三、锁

  读锁(任何人不能增删改 只能查)

  lock table t1 read;

  unlock tables;

  写锁(自己可以增删改查 别人不可以)

  lock table t1 write;

四、字符集

  s  查看四种字符集(h 查看所有类似的短命令,常用的c d s)

  设置字符集(my.cnf中设置)

  [client]

  default-character-set=utf8  客户端字符集

  [mysqld]

  character-set-server=utf8     服务器、数据库 字符集

  collation-server=utf8_general_ci  校验字符集

  show character set;        查看某个字符集的校验字符集名称

五、慢查询

  show variables like "%slow%";  慢查询是否开启(log_slow_queries)

  show variables like "%long%";  慢查询默认时间

  show status like "slow_queries"; 慢查询的次数

  desc sql语句           分析sql语句,根据实际情况确定是否要创建索引

  [mysqld]

  log_slow_queries=slow.log    开启慢查询

  long_query_time=5       规定超过5秒的查询为慢查询

  重启生效

六、查看增删改查的次数

  show status like 'com_select[delete,update,insert]%';      查看增删改查的次数(本次登录以来的操作)

  show global status like 'com_select[delete,update,insert]%';  查看增删改查的次数(服务器启动以来的操作)

  show status like 'innodb_rows%';                针对innodb存储引擎(影响的行数)

七、其他

  show status like "connections";  连接mysql的次数

  show status like "uptime";     mysql已经工作的秒数

原文地址:https://www.cnblogs.com/hwt987/p/3687560.html