Python大咖:想要做好MySQL优化,这十点知识你必须要知道

springboot/java/php/node/python猫咖管理系统【计算机毕设】 本系统(程序+源码)带文档lw万字以上文末可领取本课题的JAVA源码参考选题背景: 随着人们生活水平的提高和生活方式的多样化,宠物养殖业迅速发展起来。其中,猫咖作为一种结合了咖啡店和猫咪的特殊场所,逐渐受到人们的喜爱。猫咖不仅提供了一个休闲放松的环境,还能满足人们与猫咪互动的需求。然而,目前猫咖管理仍存在一些问题,如人员管理、卫生管理、猫咪健康监控等方面的挑战。因此,开发一套完善的猫咖管理系统具有重要的意义。选题意义:猫咖管理系统可以提高猫咖的运营效率。 阅读详情

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

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

  这里最主要的问题是,对于程序员来书,这件事情很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。

查询缓存不开启

   $result = mysql_query("select username from user where signup_date >=curdate()");

开启查询缓存

$today = date(“Y-m-d”);

   $result  = mysql_query("select username from user signup_date >='$today'");

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

2.EXPLAIN你的SELECT查询

 使用EXPLAIN关键字可以让你知道MYSQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。

 EXPLAIN的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序的......等等。

挑一个你的SELECT语句,把关键字EXPLAIN加到前面。你可以使用phpmyadmin来做这个事情。然后,你会看到一张表格。

3.当只要一行数据时使用limit 1

  当你查询表的有些时候,你已经知道结果只会有一条结果,但因为你可能需要去fetche游标,或是你也许会去检查返回的记录书。

  在这种情况下,加上limit 1可以增加性能。这样一来,MYSQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查找下一条符合记录的数据

 下面有俩条语句

 $result = mysql_query("select * from user where username = 'admin' ");

if(mysql_num_rows($result) > 0){

// 代码

}

$result  = mysql_query("select * from user where username = 'admin' limit 1");

if(mysql_num_rows($result) > 0){

    // 代码

}

通过观察我们可以清楚的知道,这两条SQL语句的效率,第二条语句是大于第一条的。

4.为搜索字段建立索引

 索引并不一定就是给主键或是唯一的字段,如果在你的表中,有某个字段你总要是经常用来做搜索,那么,请为其建立索引。

在这里插入图片描述
从上图你可以看到俩条语句模糊查询的时间。一个建立索引,一个是没有索引,性能差了4倍左右。

另外,你应该也需要知道什么样的搜索是不能使用正常的索引的。例如,当你需要在一篇大的文章中搜索一个词时,如where post_content like ‘%apple%’ ,索引可能是没有意义的,你可能需要使用MYSQL全文索引,或是自己做一个索引。

5.在join表的时候使用相同类型的,并建立索引

如果你的应用程序有很多join查询,你应该确认俩个表中join的字段是被建立过索引的。这样,MYSQL内部会启动为你优化join的SQL语句的机制。

而且,这些被用来JOIN的字段,应该是相同的类型。例如:如果你要把DECIMAL字段和一个INT字段join在一起,MYSQL就无法使用他们的索引。对于那些STRING类型,还需要有相同的字符集才行。

$result = mysql_query(‘select company_name from users left join companies on users.state = companies.state where user.id = $user_id’);

6.千万不要ORDER BY RAND()

 想打乱返回的数据行?随机挑一个数据?真不知道谁发明了这种用法,但很多新手很喜欢这样用。但你却不了解这样做有多么可怕的性能问题。

如果你真的想把返回的数据行打乱了,你有N种方法可以达到这个目的。这样使用只能让你的数据库的性能呈指数级的下降。这里的问题是:MYSLQ会不得不去执行RAND()函数(很耗CPU时间),而且这是为了每一行记录去记行,然后再对其排序。就算是你用了limit 1 也无济于事

**7.避免SELECT ***

从数据库里读出越多的数据,那么查询就会变得越慢。并且,如果你的数据库服务器和WEB服务器是两台独立的服务器的话,这还会增加网络传输的负载。

所以,你应该养成一个需要什么就取什么的好的习惯。

8.永远为每张表设置一个ID

 我们应该为数据库里的每张表都设置一个ID做为其主键,而且最好的是一个INT型的,并设置自动增加的AUTO_INCREMENT标志。

 就算是你users表有一个主键叫"email"的字段,你也别让它成为主键。使用varchar 类型来当主键会使得性能下降。另外,在你的程序中,你应该使用表的ID来构造你的数据结构。

 而且,在MYSQL数据引擎下,还有一些操作需要使用主键,在这些情况下,主键的性能和设置变得非常重要,比如,集群,分区......

在这里,只有一个情况是例外,那就是"关联表"的外键,也就是说,这个表的主键,通过若干个别的表的主键构成。我们把这个情况叫做"外键"。比如:有一个"学生表"有学生的ID,有一个"课程表"有课程ID,那么"成绩表"就是"关联表"了,其关联了学生表和课程表,在成绩表中,学生ID和课程ID叫"外键"其共同组成主键。

9.使用ENUM而不是VARCHAR

ENUM类型是非常快和紧凑的。在实际上,其保存的是TINYINT,但其外表显示为字符串。这样一来,用这个字段来做一些选项列表变的相当的完美。

 如果你有一个字段,比如"性别","国家","民族",你知道这些字段的取值是有限而且固定的,那么,你应该使用ENUM而不是VARCHAR。

MYQSL也有一个"建议",告诉你怎么去重新组织你的表结构。当你有一个VARHCAR字段时,这个建议会告诉你把其改成ENUM类型。使用PROCEDURE ANALYSE() 你可以得到相关的建议。

10.尽可能的使用NOT NULL

  除非你有一个很特别的原因去使用NULL值,你应该总是让你的字段保持NOT NULL。这看起来好像有点争议。

 首先,问问你自己"empty"和"null"有多大的区别?如果你觉得它们之间没有什么区别,那么你就不要使用null。

不要以为NULL不需要空间,其需要额外的空间,并且,在你进行比较的时候,你的程序会更复杂。当然,这里并不是说你就不能使用NULL了,现实情况是很复杂的,依然会有些情况下,你需要使用NULL值。

添加Python学习群:1015615067,和老师一对一解答指导!

想要学好人工智能,需要掌握哪些知识? 抽取式文本摘要解决方案、生成式文本摘要解决方案、自主训练词向量解决方案、解码方案的优化解决方案、数据增强优化解决方案、训练策略优化解决方案、GPU部署解决方案、CPU部署解决方案、海量文本快速分类基线模型解决方案、基于预训练模型优化的解决方案、模型量化优化的解决方案、模型剪枝优化的解决方案、模型知识蒸馏优化的解决方案、主流迁移学习模型微调优化的解决方案。机器学习、K近邻算法、线性回归、逻辑回归、聚类算法、决策树、集成学习、机器学习进阶算法、用户画像案例、电商运营数据建模分析案例。 阅读详情

相关推荐

mysql知识点

,它定义了 MySQL 服务的启动、运行、管理和关闭方式。以下是每个部分的详细解释和原理说明: Description:描述该服务的名称,方便管理员识别其用途。这里是“”。 After=network.target:表明 MySQL 服务应在 (即网络相关服务启动完成)之后启动,以确保 MySQL 能够依赖网络连接(如果配置了远程访问)。这不意味着网络一定启动成功,只是依赖其顺序。 [Install] WantedBy=multi-user.target:指定服务的安装目标,将服务链接到 。该选项决

酌沧 1742

MySQL性能优化

基本原则 想要发挥 MySQL 的最佳性能,需要遵循 3 个基本使用原则。 让MySQL回归存储的基本职能:MySQL 数据库只用于数据的存储,不进行数据的复杂计算,不承载业务逻辑,确保存储和计算分离; 查询数据时,尽量单表查询,减少跨库查询和多表关联; 杜绝大事务、大 SQL、大批量、大字段等一系列性能杀手。 大事务:运行步骤较多,涉及的表和字段较多,容易造成资源的争抢,甚至形成死锁。一旦事务回滚,会导致资源占用时间过长。 大 SQL:复杂的SQL意味着过多的表的关联,MySQL 数据库处理关联超过3

s___j的博客 683

mysql数据库优化方案(值得学习)

简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习mysql的读者。 简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习mysql的读者。 简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习mysql的读者。 简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习mysql的读者。 简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习mysql的读者。 简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习mysql的读者。

python学习笔记——MySQL优化

1.为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性能最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结构了。 这里最主要的问题是,对于程序员来书,这件事情很容易被忽略的。因为,我们某些查询语句会让MySQL不使...

qq_42489308的博客 518

MySQL性能优化之路---修改配置文件my.cnf

mysql数据库的优化,算是一个老生常谈的问题了,网上也有很多关于各方面性能优化的例子,今天我们要谈的是MySQL 系统参数的优化即优化my.cnf文件

68页|大型车企集团数字化转型汽车数字化信息系统平台规划方案

这份PPT文档提供了一个全面的汽车集团数字化转型规划方案,涵盖了项目目标、规划思路、实施关注点、解决方案建议以及合作优势等多个方面。

baidu_25525561的博客 1328

python mysql 优化_Python之MySQL优化(上)

1.索引优化1.1 索引的分类分类角度索引名称数据结构B+树,Hash索引,B-Tree 等存储层面聚簇索引,非聚簇索引逻辑层面主键索引,普通索引,组合索引,唯一索引,空间索引1.2 回表假设我们执行一条查询语句select * from person where ID = 6,因为直接使用的是主键ID查询,所以就会用主键索引,由于主键索引直接关联了整行所有数据,所以,引擎只要执行一次就能查询出结...

weixin_34260080的博客 411

记一次wireshark抓取QQ好友IP和火绒抓取微信IP

事情是这样的,,上个周,手机离奇的被盗,但没有关机,为了找回手机,粗学了一手QQ抓ip的手段。 这里我就直接做个演示,解析关键的点。 三种思路i. wireshark 抓取手机在线IPii 火绒抓取 微信在线接听IPiii 火绒抓取 微信在线不接听IP i. wireshark 抓取手机在线IP wireshark抓好友QQ的ip要求和对方打语音的时候要手机在线。 这里说一下,打语音和视频是直接能和对方建立连接,如果发文件,是直接发给腾讯的,抓不到包。 1.打开wireshark,通过电脑Tim给对方打语音

qq_29437513的博客 1万+

python管理pymysql线程池 ---python连接mysql优化程序

在以上代码中,使用Queue实现了一个连接池,构造函数中初始化了池子中的MySQL连接,get_connection()方法从队列中取一个连接,并在需要时自动新建连接,调用release_connection()方法将连接归还到池子中。execute()方法用于执行SQL查询,并在执行完毕之后将连接返回到连接池中。Pool)来管理多个MySQL连接。对象池是一种常用的优化技术,它预先分配一定数量的资源(如MySQL连接),并将它们放到一个池子里面,等待程序需要时随时取出。可以使用对象池(Object。

weixin_48960305的博客 910

期货分仓系统CTP协议/国内期货软件源码

期货分仓系统与CTP协议以及国内期货软件源码是期货交易技术领域的几个重要方面。

q2247238820的博客 962

NE564锁相环FM解调电路设计:10.7MHz中频实测与3种失真优化方案

本文详细解析了NE564锁相环在10.7MHz中频FM解调电路中的设计与优化方案。通过分析锁相环技术基础、电路架构设计及典型失真问题,提供了3种有效的失真优化方法,包括限幅增强、VCO频偏补偿和环路滤波优化,显著提升解调性能。文章还涵盖了PCB布局要点和系统测试验证,为高频电子线路设计提供实用参考。

weixin_33314040的博客 350

使用Python和PyMySQL优化MySQL数据库性能和安全性

MySQL数据库是许多Web应用程序的首选数据库管理系统之一,然而,为了确保MySQL数据库的高性能和安全性,需要采取一些措施来进行优化和保护。

m0_51261262的博客 880

从数据集到产品:聊聊Room-to-Room (R2R) 如何影响扫地机器人、AR导航的未来

本文探讨了Room-to-Room (R2R) 数据集如何推动视觉与语言导航(VLN)技术的发展,并重塑扫地机器人和AR导航的未来。通过分析R2R基于Matterport3D的设计及其在真实场景中的应用,揭示了其在提升智能导航精度和自然语言交互能力方面的潜力。文章还讨论了从实验室到产品化的关键技术挑战与解决方案。

weixin_29084231的博客 141

python+django/flask猫咖私人影院系统java+nodejs+php-计算机毕业设计

随着生活品质的提升和个性化消费需求的增长,猫咖和私人影院等新兴休闲娱乐方式逐渐受到年轻人的青睐。猫咖结合了咖啡馆与宠物互动体验,而私人影院则提供了更为私密、舒适的观影环境。然而,传统的猫咖和私人影院管理方式存在诸多不足,如预约管理混乱、顾客体验不佳、运营效率低下等。因此,开发一个基于PYTHON的猫咖私人影院系统显得尤为重要。该系统旨在通过信息化手段优化管理流程,提升顾客体验,并促进猫咖和私人影院的可持续发展。

QQ1963288475的博客 1228

新手也能搞定!用ADS 2023从零设计一个超宽带Wilkinson功分器(附完整版图)

本文详细介绍了如何使用ADS 2023从零开始设计超宽带Wilkinson功分器,涵盖介质板参数设置、微带线计算优化、版图生成验证等关键步骤。通过实例演示和常见问题排查,帮助射频工程新手快速掌握功分器设计技巧,提升设计效率。

weixin_42692935的博客 476

量化交易:如何在QMT中运行Python策略并在VSCode中高效调试?

哈喽,大家好,我是木头左!

木头大左的博客 3759

python毕设宠物咖小程序 程序+论文

关于宠物咖相关系统的研究,现有研究主要以宠物领养管理系统或宠物相关的单一功能系统为主,专门针对宠物咖小程序这种集多种功能于一体的研究较少。本选题将以宠物咖为研究情景,重点分析和研究如何构建一个全面的宠物咖小程序,整合上述多种功能,探寻宠物咖运营管理中的问题及优化机制等,提出对策建议,为后续更加深入的研究提供基础。从系统功能角度出发,研究多种功能模块的整合机制,为宠物咖运营管理相关理论的完善提供新的思路和依据,如会员管理理论、宠物健康管理与运营的结合等,有助于构建更加全面、系统的宠物咖运营管理理论体系。

sheji303的博客 1097

把 ABAP ALE Change Pointers 讲透:从 CDHDR/CDPOS 到 BDCP2,再到 RBDMIDOC 的自动分发链路

摘要:SAP ALE Change Pointers机制在系统集成中实现业务变更与数据分发的解耦。它记录业务对象变更(如SAP主数据修改),但不立即发送,而是由后续分发逻辑决定发送时机和方式。该机制包含两层:Change Documents记录审计级变更明细,Change Pointers标记需分发的关键变更。配置核心包括全局开关、消息类型激活和字段选择。典型应用如零售价格条件变更自动推送至POS系统,通过BDCP2表存储待处理队列,由RBDMIDOC程序定时评估生成IDoc。运维需关注定期清理和性能优化,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 209

python毕设 猫咖管理系统论文+程序

本选题将以猫咖为研究情景,重点分析和研究如何构建一个全面、高效的猫咖管理系统,以期探寻猫咖管理中各个环节协调运作的机制,提出合理的系统构建对策建议,为后续更加深入的研究提供基础。[8] 陈佳佳, 邱晓荣, 熊宇昊, 段莉华. "基于Python的人脸识别技术研究"[J]. 电脑知识与技术, 2023, 19 (08): 34-36+39.本选题研究将对猫咖管理相关理论进行深入的剖析,为猫咖管理领域提供一套较为系统的管理系统构建理论基础,有助于完善宠物休闲产业管理方面的理论体系。

sheji303的博客 1607

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

MySQL - 大表查询优化:分区表的创建与使用技巧

MySQL大表优化:分区表实战指南 摘要:本文针对MySQL单表数据量过大的常见痛点(查询慢、删除历史数据锁表、备份困难),提出分区表解决方案。文章对比了分区表与分库分表的适用场景,详细解析RANGE、LIST、HASH、KEY四种分区类型的特点和实现方式,重点介绍分区裁剪(Pruning)的性能优化原理。通过具体SQL示例和Mermaid流程图,展示如何按时间、地域等维度合理分区,使查询仅扫描相关数据块。本文还提供分区表管理技巧和选型建议,帮助开发者在代码零改动情况下提升大表操作效率。(148字)

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python之MySQL优化(上)

1.索引优化 1.1 索引的分类 分类角度 索引名称 数据结构 B+树,Hash索引,B-Tree 等 存储层面 聚簇索引,非聚簇索引 逻辑层面 主键索引,普通索引,组合索引,唯一索引,空间索引 1.2 回表 假设我们执行一条查询语句 select * from person where ID = 6,因为直接使用的是主键ID查询,所以就会用主键索引,由于主键索引直接关联了整行所有数据,所以,引擎只要执行一次就能查询出结果。 如果执行的sql语句是非主键索引 select * f

baidu_39394442的博客 547

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Python之MySQL优化(下)

1.0 排序优化 1.1 永远是小表驱动大表 ordel by 优化 #ordel by 语句 尽量选择index 方式排序,避免使用filesort (文件内排序)排序。 create table tbla(age int ,birth timestamp not null); insert into tbla(age,birth) values(22,now()); insert into tbla(age,birth) values(23,now()); insert into tbla(age,

baidu_39394442的博客 413

Python基础知识有哪些?你都知道吗

Python基础知识有哪些?这几年,人工智能、数据分析等各行业的兴起,让更多人知道了Python,让Python是又火了一把。Python作为一个简介又实用的编程语言,让许多想从事信息技术行业的人准备去学习它,那么Python基础知识有哪些,我们应该去怎样学习python基础知识呢?接下来就跟我一起去看看吧。   下面我们就来盘点一下Python基础阶段应该掌握的一些基础知识。   一、Python语言基础   Python核心:Python数据基本运算、语句、容器、函数   Python 面向

weixin_45820912的博客 402

超详细Python教程——MySQL性能优化

数据表设计的规范程度称之为范式(Normal Form),要提升表的规范程度通常需要将大表拆分为更小的表,范式级别越高数据冗余越小,而且在插入、删除、更新数据时出问题的可能性会大幅度降低,但是节省了空间就意味着查询数据时可能花费更多的时间,原来的单表查询可能会变成连表查询。调用存储过程可以简化应用程序开发人员的工作,减少与数据库服务器之间的通信,对于提升数据操作的性能是有帮助的,这些我们在之前的。MySQL支持做数据分区,通过分区可以存储更多的数据、优化查询,获得更大的吞吐量并快速删除过期的数据。

月流霜的专栏 974

Python爬虫与MySQL完美结合:从环境搭建到实战优化

我们掌握了在Windows和Linux系统下安装MySQL,设计适合爬虫存储数据的表结构,使用动态参数传递数据,并通过事务处理和异常捕获确保数据的一致性和安全性。此外,还结合实际爬虫示例展示了如何将爬取到的数据存储到MySQL中,并进行了MySQL性能优化。

switch616的博客 1696

mysql 拼接作为条件优化_SQL优化(一):MySQL多表查询FROM和JOIN的用法与性能优化...

一、概述from和join均是用于指定需要从哪些表查询数据,from可以是一个表或多个表,如果是多个表则是生成一个笛卡尔集,会涉及到大量数据。所以通常在涉及到多个表的查询时,通常通过join来拼接多个表。join主要是通过多个表之间的外键关联来进行拼接,注意用于拼接的列需要加上索引,如果没有则MySQL也会默认加上,不过前提是外键列和引用的主键列需要是相同的数据类型,如数字类型需要是相同的长度和均...

weixin_31159999的博客 784
上一篇: 全面解析Python三大就业方向:web全栈、爬虫、数据分析
下一篇: 常见加密方式和Python实现
LOVEPython369
博客等级 码龄8年 4粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值