+ -
当前位置:首页 → 问答吧 → Mysql读语句优化一些好的习惯----yueliangdao0608

Mysql读语句优化一些好的习惯----yueliangdao0608

时间:2011-10-26

来源:互联网

1、
SELECT * FROM t WHERE YEAR(d) >= 1994;

SELECT * FROM t WHERE d >= '1994-01-01';//这个好,相比上面的语句没有用year函数,
-------------------------------------------------------------------------------
2、
SELECT * FROM Country ,CountryLanguage
WHERE Country.Code= CountryLanguage.CountryCode;

SELECT * FROM Country JOIN CountryLanguage
ON Country.Code= CountryLanguage.CountryCode;//这个好,显式说明了连接关系,以前好像在哪里看到过,记不起来了
-------------------------------------------------------------------------------
3、
SELECT * FROM t WHERE id = ‘19’;

SELECT * FROM t WHERE id = 19;//id 设置成int类型的要比char或者archar的好?不是很明白
-------------------------------------------------------------------------------
4、
SELECT * FROM t WHERE length(column_t) = 5;

SELECT * FROM t WHERE column_length=5; //这个也不明白

--------------------------------------------------------
5、
SELECT * FROM t WHERE name LIKE '%de%‘

SELECT * FROM t WHERE name LIKE 'de%'
SELECT * FROM t WHERE name >= 'de' AND name < 'df‘//将like查询改成非like查询?具体例子什么意思不清楚
-------------------------------------------------------------------------------
6、
SELECT * FROM t WHERE 1;

SELECT * FROM t WHERE 1 LIMIT 10;这个也不懂
-------------------------------------------------------------------------------
7、
SELECT * FROM Country WHERE Name LIKE 'M%';

SELECT Name FROM Country WHERE Name LIKE 'M%';//只取需要的字段

在看yueliangdao0608的Mysql开发与优化的ppt时,看到了上面的sql,所以拿出来请教下

作者: zhaoyun0209   发布时间: 2011-10-26

1、
第二个,也就是 WHERE d >= '1994-01-01';这个可以使用索引。


2、
效率上一样,好坏无法明确说明,这个一直存在争议。

3、
INT的速度会快一些。整数处理起来比字符串快。


4、
估计是让加个字段 column_length


5、
name LIKE '%de%‘肯定效率不好,但要看需求。

至于 name LIKE 'de%' 和 name >= 'de' AND name < 'df‘/ 应该没有明显差距。不过需要做试验以确认。


6、
看MYSQL手册中的LIMIT 的作用

7、
如果不需要其它字段,当然不要列,这样,只需要处理你需要的字段,至少网络上可以少传不少字节。


作者: ACMAIN_CHM   发布时间: 2011-10-26

相关阅读 更多

热门下载

更多