左连接: select 列1,列2,列N from tableA left
join tableB on tableA.列 = tableB.列(正常是一个外键列)
[此处表连接成一张大表,完全当成一张普通表看] where,having,group by ...照常写。
【mysql】 【数据库】 【Server】 【charset】 【Create】 【source】 【Group】 …
创建数据:
CREATE TABLE t_key(id INT PRIMARY KEY, k1 INT NOT NULL UNIQUE KEY,
k2 INT NULL, k3p1 INT, k3p2 INT, col INT NULL,
KEY k1_idx_uqi (k1),
KEY k2_idx (k2),
KEY k3_idx (k3p1, k3p2)
);
INSERT INTO t_key VALUES
(1,1,1,1,1,1),(2,2,2,1,2,2),(3,3,3,1,3,3),(4,4,4,2,1,4),
(5,5,5,2,2,5),(6,6,6,2,3,6),(7,7,7,3,1,7),(8,8,8,3,3,8),(9,9,9,4,1,9);
一 条件列有无索引决定着是否能够优化
E1:条件列无索引,不可优化
EXPLAIN SELECT MIN(col),
MAX(col) FROM t_key WHERE col>3;
MySQL> EXPLAIN SELECT MIN(col), MAX(col) FROM t_key WHERE
col>3;
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys |
key | key_len | ref | rows | filtered | …
updated @2015-08-09, mysql-5.7.8-rc对generated column的改进 […]
Tags:
Del.icio.us |
Facebook |
TweetThis |
Digg |
StumbleUpon … |
备注:插图来自淘宝苏普的博客并保留水印,如果觉得不当还请及时告知 :)
写在前面:MySQL的query cache大部分情况下其实只是鸡肋而已,建议全面禁用。当然了,或许在你的场景下还是挺好的,还能发挥作用,那就继续使用吧,把本文当做参考就好。
不过,可能有的人人为只需要把 query_cache_size 大小调整为 0 就可以了,可以忽略 query_cache_type 参数的值,反正它也是可以在线调整的。
事实果真如此吗?让我们来实际模拟测试下就知道了。
我们模拟了以下几种场景:
1、初始化时,同时设置 query_cache_size 和 query_cache_type 的值为 0; 2、初始化时,设置 query_cache_size = 0,但设置 query_cache_type = 1; …[获取更多]
写在前面:在个别时候可能需要查看当前最新的事务ID,以便做一些业务逻辑上的判断(例如利用事务ID变化以及前后时差,统计每次事务的响应时长等用途)。
通常地,我们有两种方法可以查看当前的事务ID:
1、执行SHOW ENGINE INNODB STATUS,查看事务相关信息
===================================== 150303 17:16:11 INNODB MONITOR OUTPUT ===================================== Per second averages calculated from the last 15 seconds ... ------------ TRANSACTIONS Trx id counter 3359877657 -- 当前最大事务ID Purge done for trx's n:o < 3359877468 undo n:o < 0 state: running History list length 324 LIST OF TRANSACTIONS FOR EACH SESSION: ---TRANSACTION 0, not started -- 该会话中执行SHOW ENGINE INNODB …[获取更多]