MySQL中show命令

1
2
3
4
5
6
7
8
9
10
11
12
13
SHOW DATABASES                                //列出 MySQL Server 数据库。
SHOW TABLES [FROM db_name] //列出数据库数据表。
SHOW CREATE TABLES tbl_name //导出数据表结构。
SHOW TABLE STATUS [FROM db_name] //列出数据表及表状态信息。
SHOW COLUMNS FROM tbl_name [FROM db_name] //列出资料表字段
SHOW FIELDS FROM tbl_name [FROM db_name],DESCRIBE tbl_name [col_name]。
SHOW FULL COLUMNS FROM tbl_name [FROM db_name]//列出字段及详情
SHOW FULL FIELDS FROM tbl_name [FROM db_name] //列出字段完整属性
SHOW INDEX FROM tbl_name [FROM db_name] //列出表索引。
SHOW STATUS //列出 DB Server 状态。
SHOW VARIABLES //列出 MySQL 系统环境变量。
SHOW PROCESSLIST //列出执行命令。
SHOW GRANTS FOR user //列出某用户权限

1 分页查询涉及的性能优化

  • 在进行分页功能设计时,避免对总条目数量的查询

    假如每页显示 20 条数据,那么查询数据库的时候,用limit #offset#, 21 取出 21 条记录,页面展现20条。如果取到了 21 条,说明下一页还有数据,在页面展示下一页按钮。如果结果集数量不足 21,说明已经到了最后一页,无需显示下一页按钮了。这种方式完全避免了在分页查询时对总条目数量的查询。

  • 当数据量增大时,limit性能下降

    原因分析:

    针对下面的分页查询语句进行解析:select * from table_name where {condition} limit {offset} {count}

    假如offset的值很大,那么这条语句会先查询完前offset条数据之后,再开始截取count条数据进行返回,所以该语句的性能会随着数据量的增加,不断减小。

    优化策略:

    • 自定义一个自增的主键id,然后该用id进行分页查询,如:

      1
      select * from {table_name} where {condition} id >= minid and id <= maxid

Reference

写在最后

欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
微信公众号