使用 Stopwatch 监控 sql 执行时间

这是我看到的一种模式,感觉挺实用的。可以用于监控任意代码的执行时间,比直接使用 System.currentTimeMillis() 稍微优雅一点点。 Stopwatch 是 guava 包中的工具类。 示例代码如下: log.info("begin to execute sql: {}", sql); Stopwatch stopwatch = Stopwatch.createStarted()

慢 SQL 定位与优化

0 基本思路 基本思路如下: 根据慢日志定位慢查询 sql 使用 explain 等工具分析 sql 修改 sql,尽量让 sql 走索引 下面依次展开。 1 根据慢日志定位慢查询 sql 先来认识一下 mysql 中的几个变量: long_query_time:定义了查询时间超过多少秒,即认为属于慢 sql slow_query_log:一个开关,控制是否记录慢日志 slow_query_log

验证 SQL 的排序规则

问题 在 SQL 中,各个字符的排序规则是什么?哪个在前,哪个在后? 例如,我想知道下面这些字符在 SQL 中的顺序,怎么办? 0123ABCDabcd!@#$%^&*()-_+={};:'"\|`~,.<>/? 解决方案 思路:在 MySQL 中创建一张表,只存一列数据,格式为 CHAR(1),然后依次插入上面的字符,再用 SELECT ORDER BY 来查看顺序。 S

SQL中的索引(index)

sql 中可以为数据列创建索引,具体语法见:http://www.w3school.com.cn/sql/sql_create_index.asp 索引有啥用? 提高 SELECT 语句的查询效率。当 WHERE 条件中包含索引列时,MySQL(以它为例)会根据索引列拿到数据表的子集,然后进行筛选;而不必先查询完整的数据表(当数据量很大时,效率会很低),再进行条件过滤。 注意:索引也有不适用的时候

sql 语法基础(笔记)

主要有两类语句: DDL(数据定义语句) CREATE TABLE/DATABASE ALTER TABLE/DATABASE DROP TABLE/DATABASE DML(数据管理语句) INSERT 新增 DELETE 删除 UPDATE 修改 INSERT 插入 -- 创建并使用数据库 CREATE DATABASE mydatabase USE mydatabase 创建新闻表并插入数据