当前位置:首页 > 快讯 > 正文内容

mysql优化面试题(PHP面试题mysql的优化)

2023-02-20 18:46:10快讯747

你们好,最近小活发现有诸多的小伙伴们对于mysql优化器,mysql优化这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

mysql优化面试题(PHP面试题mysql的优化)

1、 在MySQL服务器上查询可以启用高速查询缓存。提高性能的最有效方法之一是让数据库引擎在后台安静地处理。当同一个查询执行多次时,如果从缓存中提取结果,是相当快的。

2、 但主要问题是,它太容易被隐藏了,我们大多数程序员都会忽略它。在一些处理任务中,我们实际上可以阻止查询缓存工作。

3、 1.//查询缓存不起作用

4、 2.$ r=MySQL _ query(' SELECT username FROM user WHERE sign up _ date=CURDATE()');

5、 3.

6、 4.//查询缓存有效!

7、 5.$ today=date(' Y-m-d ');

8、 6.$ r=MySQL _ query(' SELECT username FROM user WHERE sign up _ date=' $ today ' ');

9、 7.

10、 8.//查询缓存不起作用

11、 9.$ r=MySQL _ query(' SELECT username FROM user WHERE sign up _ date=CURDATE()');

12、 10.

13、 11.//查询缓存有效!

14、 12.$ today=date(' Y-m-d ');

15、 13.$ r=MySQL _ query(' SELECT username FROM user WHERE sign up _ date=' $ today ' ');

16、 使用EXPLAIN关键字是另一种MySQL优化技术,可以让你知道MySQL在做什么样的查询操作,可以帮助你找到瓶颈,显示查询或表结构哪里错了。

17、 EXPLAIN查询的结果可以告诉您哪些索引被引用,表是如何被扫描和排序的,等等。

18、 实现一个选择查询(最好是带有连接的复杂查询),并在其中添加关键字解释。这里我们可以用phpMyAdmin,他会在表格里告诉你结果。例如,如果我在执行连接时忘记向索引中添加列,EXPLAIN可以帮助我找到问题。

19、 在将索引添加到group_id字段之后。

20、 有时候,当你想查一个表的时候,你知道你只需要看一行。您可能会找到一个非常独特的记录,或者只是检查现有记录的数量,它们都符合您的WHERE子句。

21、 在这种情况下,添加限制1将使您的查询更有效。数据库引擎不会扫描整个表或索引,而是在只找到1时停止扫描。

22、 1.//我有来自阿拉巴马的用户吗?

23、 2.//不要做什么:

24、 3.$ r=MySQL _ query(' SELECT * FROM user WHERE state=' Alabama ' ');

25、 4.if (mysql_num_rows($r) 0) {

26、 5.//.

27、 6.}

28、 7.//好多了:

29、 8.$ r=MySQL _ query(' SELECT 1 FROM user WHERE state=' Alabama ' LIMIT 1 ');

30、 9.if (mysql_num_rows($r) 0) {

31、 10.//.

32、 11.}

33、 索引不仅是主键或唯一键。如果要搜索表中的任何列,应该始终指向索引。

34、 如果您的应用程序包含多个连接查询,您需要确保您链接到的列在两个表中都有索引。这将影响MySQL优化内部连接操作的方式。

35、 此外,添加的列必须属于同一类型。例如,如果同时在另一个表中添加一个DECIMAL列和一个int列,MySQL将无法使用至少一个指示器。即使字符编码必须是相同的字符串类型。

36、 1.//寻找我所在州的公司

37、 2.$r=mysql_query('从用户中选择公司名称

38、 3.打开左加入公司(users.state=companies.state)

39、 4.其中users . id=$ user _ id’);

40、 5.

41、 6.//两个状态列都应该被索引

42、 7.//并且它们应该是相同的类型和字符编码

43、 8.//或者MySQL可能会进行全表扫描

44、 这是很多程序员新手都会陷入的陷阱。你可能无意识地创造了一种可怕的平静。这个陷阱是在您使用BY RAND()命令时创建的。

45、 如果你真的需要随机显示你的结果,有很多更好的方法可以实现。诚然,这需要编写更多的代码,但它可以避免性能瓶颈。问题是MySQL可能会对表中每个独立的行执行BY RAND()命令(这会消耗处理器的处理能力),然后只返回一行给你。

46、 1.//不要做什么:

47、 2.$ r=MySQL _ query(' SELECT username FROM user ORDER BY RAND()LIMIT 1 ');

48、 3.//好多了:

49、 4.$ r=MySQL _ query(' SELECT count(*)FROM user ');

50、 5.$ d=MySQL _ fetch _ row($ r);

51、 6.$rand=mt_rand(0,$ d[0]-1);

52、 7.

53、 8.$r=mysql_query('从用户限制中选择用户名$rand,1 ');

54、 从表中读取的数据越多,查询就越慢。它增加了操作磁盘所需的时间,或者当数据库服务器和WEB服务器独立时。你会经历很长的网络延迟,仅仅是因为数据在服务器之间不必要的传输。

55、 总是指定您需要的列是一个非常好的习惯。

56、 1.//不是首选

57、 2.$ r=MySQL _ query(' SELECT * FROM user WHERE user _ id=1 ');

58、 3.$ d=MySQL _ fetch _ assoc($ r);

59、 4.echo 'Welcome {$d['用户名']} '

60、 5.//更好:

61、 6.$ r=MySQL _ query(' SELECT username FROM user WHERE user _ id=1 ');

62、 7.$ d=MySQL _ fetch _ assoc($ r);

63、 8.echo 'Welcome {$d['用户名']} '

64、 9.//结果集越大,差异越明显

65、 PROCEDURE ANALYSE()允许MySQL的列结构分析和表中的实际数据给你一些建议。如果您的表中已经有实际数据,它可以为您的重要决策服务。

66、 准备好的报表可以从性能优化和安全性两个方面帮助大家。

67、 默认情况下,预处理语句可以有效地保护应用程序,并在过滤绑定变量时防止SQL注入攻击。当然也可以手动过滤,但是由于大部分程序员的健忘,很难达到效果。

68、 1.//创建准备好的语句

69、 2.if($ stmt=$ mysqli-prepare(' SELECT username FROM user WHERE state=?')) {

70、 3.//绑定参数

71、 4.$stmt-bind_param('s '$ state);

72、 5.//执行

73、 6.$ stmt-execute();

74、 7.//绑定结果变量

75、 8.$ stmt-bind _ result($ username);

76、 9.//获取值

77、 10.$ stmt-fetch();

78、 11.printf('%s来自%s\n '$username,$ state);

79、 12.$ stmt-close();

80、 13.}

81、 许多程序员在创建VARCHAR(15)时没有意识到他们可以将IP地址存储为一个整数。当你有一个INT类型时,你只占用4个字节的空间,这是一个固定大小的字段。

82、 您必须确保所操作的列是无符号整数类型,因为IP地址将使用32位无符号整数。

83、 1.$ r=' UPDATE users SET IP=INET _ ATON(' { $ _ SERVER[' REMOTE _ ADDR ']} ')其中user _ id=$ user _ id '

84、 这里介绍十大MySQL优化技术。

以上就是mysql优化这篇文章的一些介绍,希望能帮助到大家。

扫描二维码推送至手机访问。

版权声明:文章内容摘自网络,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。谢谢!

本文链接:http://xixia168.cn/n/kx/266776.html

标签: mysql
分享给朋友:

“mysql优化面试题(PHP面试题mysql的优化)” 的相关文章

动易论坛模板(动易首页模板改了后主页没有显示)

动易论坛模板(动易首页模板改了后主页没有显示)

东艺论坛(广东东艺软件有限公司)十六画先生2016-11-05 15:28:18 本教程以服务器为例。 准备工具: 学习下载地址:http://www.phpstudy.net/phpstudy/phpstudy.zip 源代码:网上有很多。新手练的话,我就随便提供一套。因为我们的网站是由动态简易论...

信鸽图片制作手机软件下载(信鸽app软件下载手机)

信鸽图片制作手机软件下载(信鸽app软件下载手机)

信鸽图片(正宗詹森|6张信鸽图片)原鸽趣闻2017-12-16 08:05:00 《鸽趣》每天都给大家带来一些关于养鸽和赛鸽的常识,以及鸽子世界里的趣事。点击关注,每天都会免费为您带来实用的养鸽文章。大家一起讨论,一起进步,一起学习。有问题可以留言回答。 很多年轻的鸽友都是第一次买鸽子。很难分辨什么...

2030年前癌症疫苗或将问世

2030年前癌症疫苗或将问世

(观察者网讯)据《卫报》10月16日消息,德国生物技术公司BioNTech的创始人在接受BBC采访时称,针对癌症的疫苗可能2030年前上市。《卫报》截图BioNTech是欧洲最大生物技术独角兽,与美国辉瑞合作研发生产了mRNA新冠疫苗。据报道,该公司联合创始人乌古尔·萨欣(Uur ahin)和奥兹朗...

未来五年房地产怎么发展?定调来了

未来五年房地产怎么发展?定调来了

中新网10月18日电(中新财经记者 左宇坤)中共二十大报告中,在“增进民生福祉,提高人民生活品质”的大框架下阐述了房地产发展方向,具体提出:坚持房子是用来住的、不是用来炒的定位,加快建立多主体供给、多渠道保障、租购并举的住房制度。  这将对中国住房制度以及房地产市场发展带来怎样的影响?  重申“房住...

流产以后需要吃什么(刚流产完可以吃什么)

流产以后需要吃什么(刚流产完可以吃什么)

流产后吃什么(流产后吃什么?) 流产一般对身体伤害很大,因为手术后人不仅会受到一些器质性的伤害,还会被一些身体基础破坏,主要是容易造成气血两虚。对于女性来说,气血两虚本身就存在,手术后症状会加重,这时候就要补了。那么,流产后应该吃什么呢?手术后有哪些注意事项?让我们来看看吧。 流产后的饮食 1.首先...

原始天尊的徒弟(原始天尊的徒弟胜了为什么封神榜不是有名之人)

原始天尊的徒弟(原始天尊的徒弟胜了为什么封神榜不是有名之人)

原佛弟子(初佛弟子及孙辈) 元天尊、太上老君、田童教主、道长(后改名如来)、道士准提(大概是菩提菩提菩萨)都是洪钧菩萨的弟子。元始天尊是其他弟子中最有名的弟子和弟子。以下是详细分析。 第一佛十二弟子:广程子、红精、丁于真人、太乙真人、黄龙真人、文殊广发天尊、普贤真人、慈水道人、灵宝驱魔人、慧六孙、道...