hob*_*ave 12 mysql optimization
MySQL问题是StackOverflow上我最喜欢的一些问题.
不幸的是,这样的事情:
SELECT foo, bar, baz, quux, frozzle, lambchops FROM something JOIN somethingelse ON 1=1 JOIN (SELECT * FROM areyouserious) v ON 0=5 WHERE lambchops = 'good';
Run Code Online (Sandbox Code Playgroud)
让我的眼睛流血.
此外,尝试描述您的架构通常如下所示:
我有一个表CrazyTable,其中一个列是一个日期,它有一个主键Foo_Key但我想使用column_bar的子串(在CrazyTable中)加入SOMETABLE,该子串与月亮的相位有关(我存储了它)在moon_phases中作为三次序列化的PHP数组).
这是我问的一个问题的例子,如果我没有按照下面的步骤操作,我将永远不会得到任何人的满意答复:我没有羞耻..
我将在下面回答最能帮助我解决问题的方法.什么帮助你?
hob*_*ave 15
这告诉我关于你的桌子的更多信息,而不是你的话语:
mysql> show create table magic\G
*************************** 1. row ***************************
Table: magic
Create Table: CREATE TABLE `magic` (
`id` int(11) DEFAULT NULL,
`what` varchar(255) DEFAULT NULL,
`the` datetime DEFAULT NULL,
`heck` text,
`soup_is_good` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
CAVEAT:如果表中有70列,请省略不必要的列.有什么必要?
这让我可以看到如何最好地优化您当前正在工作但速度可能很慢的查询:
mysql> explain select * from magic\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: magic
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 1
Extra:
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
必须向右滚动通常是不方便的.
通常:
mysql> select * from magic;
+------------+-------------------------------+---------------------+-------------------+--------------+
| id | what | the | heck | soup_is_good |
+------------+-------------------------------+---------------------+-------------------+--------------+
| 1000000000 | A really long text string yay | 2009-07-29 22:28:17 | OOOH A TEXT FIELD | 100.5 |
+------------+-------------------------------+---------------------+-------------------+--------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
更好:
mysql> select * from magic\G
*************************** 1. row ***************************
id: 1000000000
what: A really long text string yay
the: 2009-07-29 22:28:17
heck: OOOH A TEXT FIELD
soup_is_good: 100.5
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
CAVEAT:\G显然将一行数据转换成几行.对于几行数据,这变得同样麻烦.做什么看起来最好.
使用外部pastebin来获取令人讨厌的大块数据:
归档时间: |
|
查看次数: |
291 次 |
最近记录: |