加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

MySQL全球服务器排名及常见优化方法

发布时间:2018-10-03 13:12:55 所属栏目:外闻 来源:今日头条
导读:副标题#e# 【新品产上线啦】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个字节的空间,这是一个固定大小的领域。

(编辑:云计算网_泰州站长网)

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

热点阅读