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';
使我的眼睛流血。
另外,描述您的架构的尝试通常如下所示:
我有一个表CrazyTable,其表的列是一个日期,它的主键为Foo_Key,但我想使用column_bar的子字符串(位于CrazyTable中)加入与月相有关的SOMETABLE(我存储该表)在moon_phases中作为三次序列化的PHP数组)。
这是我问的一个问题示例,如果我不执行以下步骤,那么我将永远不会得到任何人的满意答复:我不会感到羞耻。。
我会回答下面什么帮助 我 最有获得最好的回答你的问题。什么对 您有 帮助?
这比起您的话语更能告诉我有关您的桌子的更多信息:
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)
注意 :如果表中有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)
通常 必须向右滚动不便之处。
通常:
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)
更好:
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)
CAVEAT: \ G显然会将一行数据变成几行。对于几行数据来说,这同样变得麻烦。做看起来最好的事情。
使用外部pastebin处理令人讨厌的大数据: