加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

MySQL环球处事器排名及常见优化要领

发布时间:2018-10-12 16:56:17 所属栏目:业界 来源:今日头条
导读:【新品产上线啦】51CTO播客,随时随地,碎片化进修 编程说话排行榜中Oracle、MySQL 、Microsoft SQL Server 恒久攻克着前三的位置,MySQL稳居第二。 在市场竞争定位上,MySQL产物被首要定位于三大规模:Web、Telecom和Embed。 很多我们相识的和不相识的企业

假如您真的必要随机表现你的功效,有许多更好的途径去实现。诚然这必要写更多的代码,可是能停止机能瓶颈的呈现。题目在于,MySQL也许会为表中每一个独立的行执行BY RAND()呼吁(这会耗损处理赏罚器的处理赏罚手段),然后给你仅仅返回一行。

  1. // what NOT to do: 
  2.  
  3. $r = mysql_query("SELECT username FROM user ORDER BY RAND() LIMIT 1"); 
  4.  
  5. // much better: 
  6.  
  7. $r = mysql_query("SELECT count(*) FROM user"); 
  8.  
  9. $d = mysql_fetch_row($r); 
  10.  
  11. $rand = mt_rand(0,$d[0] - 1); 
  12.  
  13. $r = mysql_query("SELECT username FROM user LIMIT $rand, 1"); 

七 、只管停止SELECT *呼吁

从表中读取越多的数据,查询会变得更慢。他增进了磁盘必要操纵的时刻,照旧在数据库处事器与WEB处事器是独立分隔的环境下。你将会经验很是漫长的收集耽误,仅仅是由于数据不须要的在处事器之间传输。

  1. 始终指 定你必要的列,这是一个很是精采的风俗。 
  2.  
  3. // not preferred 
  4.  
  5. $r = mysql_query("SELECT * FROM user WHERE user_id = 1"); 
  6.  
  7. $d = mysql_fetch_assoc($r); 
  8.  
  9. echo "Welcome {$d['username']}"; 
  10.  
  11. // better: 
  12.  
  13. $r = mysql_query("SELECT username FROM user WHERE user_id = 1"); 
  14.  
  15. $d = mysql_fetch_assoc($r); 
  16.  
  17. echo "Welcome {$d['username']}"; 
  18.  
  19. // the differences are more significant with bigger result sets 

八、 从PROCEDURE ANALYSE()中得到提议

ROCEDURE ANALYSE()可让MySQL的柱布局说明和表中的现实数据来给你一些提议。假如你的表中已经存在现实数据了,能为你的重大决定处事。

MySQL环球处事器排名及常见优化要领

九、 筹备好的语句

筹备好的语句,可以从机能优化和安详两方面临各人有所辅佐。

筹备好的语句在过滤已经绑定的变量默认环境下,能给应用措施以有用的掩护,防备SQL注入进攻。虽然你也可以手动过滤,不外因为大大都措施员忘掉的性格,很难到达结果。

  1. // create a prepared statement 
  2.  
  3. if ($stmt = $mysqli->prepare("SELECT username FROM user WHERE state=?")) { 
  4.  
  5. // bind parameters 
  6.  
  7. $stmt->bind_param("s", $state); 
  8.  
  9. // execute 
  10.  
  11. $stmt->execute(); 
  12.  
  13. // bind result variables 
  14.  
  15. $stmt->bind_result($username); 
  16.  
  17. // fetch value 
  18.  
  19. $stmt->fetch(); 
  20.  
  21. printf("%s is from %s ", $username, $state); 
  22.  
  23. $stmt->close(); 
  24.  

十、 将IP地点存储为无标记整型

很多措施员在建设一个VARCHAR(15)时并没故意识到他们可以将IP地点以整数情势来存储。当你有一个INT范例时,你只占用4个字节的空间,这是一个牢靠巨细的规模。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读