mysql一些小技巧

50 阅读1分钟

查询数据库隔离级别

select @@tx_isolation;

分析慢sql

主要是查看这三个字段的信息:
long_query_time:sql执行多久才算慢sql,默认是10s;
slow_query_log:慢日志是否开启,默认是OFF;
slow_query_log_file:慢日志存放的位置

索引

mysql优化器选择索引三个因素:

  1. 扫描行数
  2. 算法建临时表
  3. 是否排序:如果有按照某个索引进行排序的语句,则优先选择

索引统计基数

show index from raw_pdp_data;

触发基数统计

对于由于索引统计信息不准确导致的问题,你可以用 analyze table 来解决
analyze table raw_pdp_data;

分析查询使用索引

explain select
对于其他优化器误判的情况,你可以在应用端用 force index 来强行指定索引,也可以通过修改语句来引导优化器,还可以通过增加或者删除索引来绕过这个问题。

创建索引技巧

可以指定前N个字段做索引,减少索引体积,容易增加扫描次数(不绝对):

mysql> alter table SUser add index index1(email);
或
mysql> alter table SUser add index index2(email(6));

使用前缀索引,定义好长度,就可以做到既节省空间,又不用额外增加太多的查询成本。