执行count时慢
服务器环境:centos7+mysql8
10多条数据,执行```sql
SELECT COUNT(*) FROM hy_dept
``竟然耗时时间300多ms,这种情况怎么排查和优化呢?
CREATE TABLE `hy_dept` (
`id` int NOT NULL AUTO_INCREMENT,
`pid` int DEFAULT NULL COMMENT '上级组织',
`uid` int DEFAULT NULL,
`dept_type` int DEFAULT NULL COMMENT '单位类别',
`ordering` smallint DEFAULT '10001' COMMENT '排序',
`dept_name` varchar(100) DEFAULT NULL COMMENT '组织名称',
`principal` varchar(100) DEFAULT NULL COMMENT '负责人',
`tel` varchar(11) DEFAULT NULL COMMENT '联系电话',
`pathint` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT ':',
`createtime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20036 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
服务器啥配置啊,和mysql关系不大吧
我本地测试也是0.01s,但服务器上执行就是300ms多.在mysql控制台里执行的,是不是和my.cnf配置有关,有什么调优工具吗?谢谢!
数据库不是服务器本地的吧,跨地区访问数据库就是慢
InnoDB 是内存表, 一般是没行数记录的, 你可以看phpmyadmin上显示也是~ (约等号) 可以增加搜索条件来加快速度. SELECT COUNT(*) FROM hy_dept WHERE pid > 0
当然最好的办法是增加个字段 如 tad 全部入 1 sql写成 SELECT COUNT(*) FROM hy_dept WHERE tad = 1
速度将最快.