最新赞助活动温馨提示:自愿赞助服务器费用,学生和没有工作的整站资源免费下载!
头像

优化Mysql的面试题

来源:http://www.erdangjiade.com/topic/5.html 沐浴春风 2017-09-13 17:36浏览(522)

我们在面试的时候会经常遇到面试官会问:“你对mysql优化有什么建议?”

今天我们就说下多条数据库的优化方法,希望对你有帮助!


1. 为查询缓存优化你的查询

大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。

这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的示例:

// 查询缓存不开启
 $r = mysql_query("SELECT username FROM student WHERE adddate >= CURDATE()");
 
 // 开启查询缓存
 $today = date("Y-m-d");
 $r = mysql_query("SELECT username FROM student WHERE adddate >= '$today'");

上面两条SQL语句的差别就是 CURDATE() ,MySQL的查询缓存对这个函数不起作用。所以,像 NOW() 和 RAND() 或是其它的诸如此类的SQL函数都不会开启查询缓存,因为这些函数的返回是会不定的易变的。所以,你所需要的就是用一个变量来代替MySQL的函数,从而 开启缓存。



2. 当只要一行数据时使用 LIMIT 1

// 没有效率的,这样会查询多条
 mysql_query("SELECT * FROM student WHERE country = 'China'");
 
 
 // 有效率的,只查询一条
 mysql_query("SELECT 1 FROM student WHERE country = 'China' LIMIT 1");


3.如何去除Mysql字段里面的空格


UPDATE biao SET ziduan = REPLACE(REPLACE(ziduan, CHAR(10), ''), CHAR(9),'');

UPDATE biao SET ziduan = REPLACE(REPLACE(ziduan, CHAR(10), ''), CHAR(13),'');

update `biao` set `ziduan`=replace(`ziduan`,' ','')



后面继续更新......



标签: 小程序Mysql
评论1
头像

友情提示:垃圾评论一律封号 加我微信:826096331拉你进VIP群学习群

  • 头像 沙发
    09-13 17:36
    沐浴春风
    update `biao` set `ziduan`=replace(`ziduan`,\' \',\'\')第一个\' \'里面是有个空格的呢
1 2