php、shell、python、mysql、MongoDB等技术学习之路
文章平均质量分 71
本专栏记录了个人学习各种语言基础还有数据库的笔记和心得,仅供分享和互相学习,希望各位看官勿喷。。。已经更新的文章会同步更新到我的微博上【朋恋冉曲】,大家可以关注微博,共同学习哈
luyaran
像永远快乐的阳光,追求那至高无上的完美乐园。
展开
-
MySQL面试常见题目(九)
原文地址:MySQL面试常见题目(九)1、MyISAM表类型在哪里以什么类型存储?每个MyISAM表格以以下三种格式存储在磁盘上: 【.frm】文件存储表定义。 数据文件具有【.MYD】(MYData)扩展名。 索引文件具有【.MYI】(MYIndex)扩展名。 2、什么是聚簇索引?何时使用聚簇索引和非聚簇索引?聚簇索引:将数据存储与索引放到一起,找到索引也就找到了数据。非聚簇索引:将数据存储与索引分开,索引结构的叶子节点指向数据的对应行,MyISAM通过key原创 2021-11-11 09:16:27 · 459 阅读 · 0 评论 -
MySQL面试常见题目(八)
原文地址:MySQL面试常见题目(八)1、数据库三大范式? 第一范式:每个列都不可再拆分。 第二范式:在第一范式基础上,非主键列完全依赖于主键,而不能依赖于主键的一部分。 第三范式:在第二范式基础上,非主键列只依赖于主键,不依赖于其它非主键。 2、MyISAM索引和InnoDB索引的区别? InnoDB索引是聚簇索引,MyISAM索引是非聚簇索引。 InnoDB主键索引的叶子节点存储着行数据,因此主键索引非常高效。 MyISAM主键索引的叶子节点存原创 2021-11-10 09:20:36 · 650 阅读 · 0 评论 -
MySQL面试常见题目(七)
原文地址:MySQL面试常见题目(七)1、500台数据库如何快速重启? 使用批量ssh工具pssh对需重启的机器执行指令。 使用salt或ansible等多线程工具同时操作多台服务器。 2、一6亿表a,一3亿表b,通过外键tid关联,如何快速查询出满足条件的第50000到50200中这200条数据?假设一:a的tid是自增长且连续的,b的id字段为索引,SQL如下:select * from a,b where a.tid = b.id and a.tid>50000原创 2021-11-09 16:48:41 · 504 阅读 · 0 评论 -
MySQL面试常见题目(六)
原文地址:MySQL面试常见题目(六)1、字段为何需定义NOTNULL?NULL会占用更多字节,且NULL有很多坑。2、如需存储用户密码散列,应使用什么字段?应使用char,可节省空间且提高检索效率。3、如何优化大查询? 将一个大查询分为多个小的相同查询。 减少冗余记录的查询。 一个复杂查询可考虑拆成多个简单查询。 分解关联查询,让缓存的效率更高。 4、MySQL数据库CPU飙升排查过程? 使用top指令观察,确认是mysqlId导致还是其.原创 2021-11-08 09:14:59 · 3239 阅读 · 0 评论 -
MySQL面试常见题目(五)
原文地址:MySQL面试常见题目(五)1、SQL约束有哪几种? NOTNULL:约束字段内容一定不能为NULL。 UNIQUE:约束字段唯一性,一个表允许有多个UNIQUE。 PRIMARYKEY:约束字段唯一,不可重复,一个表只能有一个。 FOREIGNKEY:用于预防破坏表之间连接的动作,也能防止非法数据插入外键。 CHECK:用于控制字段的值范围。 2、MySQL事务的特性? 原子性:事务作为一个整体被执行,包含在其中对数据库的操作要么...原创 2021-11-08 09:13:21 · 287 阅读 · 0 评论 -
MySQL面试常见题目(四)
原文地址:MySQL面试常见题目(四)1、MySQL有哪几种锁?按锁粒度划分: 表锁:开销小,加锁快,锁定力度大,锁冲突概率高,并发度最低,不出现死锁。 行锁:开销大,加锁慢,会出现死锁,发生锁冲突概率低,并发程度高。 页锁:加锁速度和锁定粒度介于表锁和行锁,会出现死锁,并发程度一般。 2、hash索引和B+树的区别? B+树可进行范围查询,hash索引不能。 B+树支持联合索引的最左原则,hash索引不支持。 B+树支持orderb.原创 2021-11-06 13:22:07 · 165 阅读 · 0 评论 -
MySQL面试常见题目(三)
原文地址:MySQL面试常见题目(三)1、MySQL主从延迟如何解决?MySQL主从原理图如下:主从同步出现延迟原因:一个服务器开发N个链接给客户端,可能会产生大并发更新操作,但从服务器里读取binlog的线程只有一个,当某SQL在从服务器上执行时间稍长或由于某SQL需锁表,就会导致主服务器的SQL大量积压,未被同步到从服务器。解决方案如下: 主服务器要负责更新,安全性要求比从服务器高,所以有些参数可修改,如sync_binlog=1,innodb_flush_log_at_t原创 2021-11-05 15:55:07 · 112 阅读 · 0 评论 -
Go使用Sunday算法实现PHP的strstr()
原文地址:Go使用Sunday算法实现PHP的strstr()Sunday算法是DanielM.Sunday于1990年提出的字符串模式匹配,其核心思想是:在匹配过程中,模式串发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高匹配效率。了解完定义后来看几个概念: 串:字符串的简称。 空串:长度为零的串。 主串:包含子串的串。 子串:串中任意个连续的字符组成的子序列。 模式串:子串的定位运算又称为串的模式匹配,是一种求子串第一个字符...原创 2021-11-04 09:24:00 · 234 阅读 · 0 评论 -
Go-POST提交图片文件&参数到远程服务器
// PostFormDataAndFile 提交头像到远程服务器func PostFormDataAndFile(projectID, uuid string) (string, error) { client := http.Client{} bodyBuf := &bytes.Buffer{} defineConfig := global.GetConfig("define") postUrl := defineConfig.GetString("IMG_AVATAR_URL_" .原创 2021-07-23 14:29:03 · 546 阅读 · 0 评论 -
关于PHP性能提升踩过的一些坑
性能这个东西,在网站规模到达一定程度后,会是一个永恒的主题。关于这方面,本人有一些拙见,现在拿出来,大家一起探讨下。 1、编码过程中,传递参数时,尽量少使用‘引用传参’。这是一个巨坑啊。。。我们要了解,PHP所以来的技术模型是什么?写时复制(copy-on-write)好吧啦。当你使用‘引用传参’的时候,你的那个什么变量啊啥的都会再重新复制一份,知道了不。然而当你直接传参一个巨大的变...原创 2018-04-24 17:35:36 · 1902 阅读 · 0 评论 -
python2.7入门---2.x与3.x版本区别
Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Py...原创 2018-04-19 16:58:06 · 344 阅读 · 0 评论 -
python2.7入门---GUI编程(Tkinter)
Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。...原创 2018-04-19 16:27:30 · 2153 阅读 · 1 评论 -
python2.7入门---JSON
这次我们来看如何使用 Python 语言来编码和解码 JSON 对象。首先,我们得了解,JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。然后呢,使用 JSON 函数需要导入 json 库:import json。函数描述json.dumps将 Python 对象编码成 JSON 字符串json.loads将已编码的 JSON ...原创 2018-04-19 15:34:05 · 3604 阅读 · 0 评论 -
python2.7入门---XML解析
首先我们先来考虑,什么是XML?XML 指可扩展标记语言(eXtensible Markup Language)。XML 被设计用来传输和存储数据。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。 了解了上面的内容,我们就来看一下python对XML的解析。常见...原创 2018-04-19 15:23:47 · 960 阅读 · 0 评论 -
python2.7入门---多线程
多线程类似于同时执行多个不同程序,多线程运行有如下优点:使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度程序的运行速度可能加快在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。 线程在执行过程...原创 2018-04-19 14:37:04 · 2606 阅读 · 0 评论 -
python2.7入门---SMTP发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。Python创建 SMTP 对象语法如下:import smtplibsmtpObj = smtplib.SMTP( [host...原创 2018-04-19 14:02:04 · 1400 阅读 · 0 评论 -
python2.7入门---网络编程(socket)
Python 提供了两个级别访问的网络服务:低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。 那么,什么事socket呢?Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答...原创 2018-04-19 13:47:55 · 2585 阅读 · 0 评论 -
python2.7入门---操作mysql数据库增删改查
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000InformixInterbaseOracleSybase 你可以访问Python数据库接...原创 2018-04-19 11:53:14 · 2004 阅读 · 0 评论 -
python2.7入门---CGI编程&文件上传&文件下载
这次我们来看下文件下载和上传的操作。首先是上传,HTML设置上传文件的表单需要设置 enctype 属性为 multipart/form-data,代码如下所示:<!DOCTYPE html><html><head><meta charset="utf-8"><title>luyaran(luyaran.com)</..原创 2018-04-18 17:32:20 · 1169 阅读 · 1 评论 -
python2.7入门---CGI编程&表单操作&cookie操作
看到标题我们首先有个疑问,什么是CGI?CGI 目前由NCSA维护,NCSA定义CGI为:CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。为了更好的了解CGI是如何工作的,我们可以从在网页上点击一个链接或URL的流程:1、使用你的浏览器访问URL并连接到HTTP web 服务器。2、W...原创 2018-04-18 17:26:22 · 400 阅读 · 0 评论 -
python2.7入门---正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。re 模块使 Python 语言拥有全部的正则表达式功。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。re 模块也提供了与这些方法功能完全一致的函...原创 2018-04-18 14:17:43 · 1713 阅读 · 0 评论 -
python2.7入门---面向对象
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。所以,这篇文章我们来记录下Python的面向对象编程。如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。接下来我们先来简单的了解下面向对象的一些基本特征。...原创 2018-04-18 13:20:11 · 795 阅读 · 0 评论 -
python2.7入门---内置函数
内置函数 abs()divmod()input()open()staticmethod()all()enumerate()int()ord()str()any()eval()isinstance()pow()sum()basestring()execfile()issubclass()print()super()bin()file()iter()property()tuple()bool()...原创 2018-04-17 17:28:44 · 968 阅读 · 1 评论 -
python2.7入门---异常处理
python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。我们可以使用该功能来调试python程序。异常处理。断言(Assertions)。 首先来看python的标准异常:异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)Exception常规错误的基类St...原创 2018-04-17 16:30:43 · 2013 阅读 · 0 评论 -
python2.7入门---file(文件)&OS 文件&目录方法
首先file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:序号方法及描述1file.close()关闭文件。关闭后文件不能再进行读写操作。2file.flush()刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。3file.fileno()返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如o...原创 2018-04-17 16:11:42 · 1004 阅读 · 0 评论 -
python2.7入门---文件I/O&简单用户交互
这篇文章开始之前,我们先来看下python中的输出方法。最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式。此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下:#!/usr/bin/python# -*- coding: UTF-8 -*- print "Python 是一个非常棒的语言,不是吗?" 我们的的标准屏幕上会产生以下结...原创 2018-04-17 15:46:21 · 935 阅读 · 0 评论 -
python2.7入门---模块(Module)
来,这次我们就看下Python 模块(Module)。它是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。下例是个简单的模块 support.py:def print_func( pa...原创 2018-04-17 15:19:09 · 1279 阅读 · 0 评论 -
jQuery实现图片点击放大缩小(小案例)
我们不废话,直接上例子。首先利用dom的垂直分层实现图片的点击放大和缩小(手机上使用的效果较好),在图片放大的时候同时禁止页面的滑动,如果在web端的话可以不禁止屏幕的滚动(因为图片放大是将图片的宽度变成100%,在web上长度可能会超出屏幕 的高度)。 来看css部分代码:<style> /*全屏显示大图*/ .opacityBottom{ ...原创 2018-04-17 09:58:55 · 9213 阅读 · 1 评论 -
python2.7入门---函数
不是说现在的高级程序员都是秉承着用最少的代码实现功能么,那么,怎么才能使代码少呢?好吧,不装哔~~~了,这一波操作我说不来,咱们直接来看内容。首先,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。我们已经知道Python提供了许多内建函数,比如print()。但我们也可以自己创建函数,这被叫做用户自定义函数。那咱们如何定义一个由...原创 2018-04-16 18:18:22 · 724 阅读 · 0 评论 -
python2.7入门--- 日期和时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。我们今天就来看一下这方面,首先得知道,Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。然后呢,Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time...原创 2018-04-16 11:16:19 · 4285 阅读 · 0 评论 -
python2.7入门---字典(Dictionary)
这次咱们记录的是python中的字典这个鬼,首先我们得了解,字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:d = {key1 : value1, key2 : value2 } 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要...原创 2018-04-13 18:01:27 · 1315 阅读 · 0 评论 -
python2.7入门---元组
这次我们来学习下python中的元组。首先,基础认知点是,Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。实例如下:tup1 = ('physics', 'chemistry', 1997, 2000);tup2 = (1, 2, 3, 4, 5 );tup3 = "a", "b"...原创 2018-04-12 17:52:10 · 567 阅读 · 0 评论 -
python2.7入门---列表(List)
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现...原创 2018-04-12 11:40:28 · 1493 阅读 · 0 评论 -
python2.7入门---字符串
这次咱们就来看一下python的字符串类型。首先我们要知道,字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。我们来看一个实例:var1 = 'Hello World!'var2 = "Python luyaran" 接下来我们来访问一下字符串中的值。首先我们得知道,Python不支持单字符类型,单字符在...原创 2018-04-12 11:12:51 · 770 阅读 · 0 评论 -
python2.7入门---Number(数字)
今天咱们来简单分享一下关于python中的一种数据类型和操作方法。费话不多说哈,咱们直接来进行实践加理论。首先,我们要知道,Python Number 数据类型用于存储数。数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。下面的实例在变量赋值时 Number 对象将被创建:var1 = 1var2 = 10 我们同样可以使用del语句删除一...原创 2018-04-11 18:15:15 · 622 阅读 · 0 评论 -
python2.7入门---break语句&continue语句&pass空语句
这篇文章记录的就是比较好玩的东西了,也是比较重要的。咱们先来看一下break语句。Python break语句,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。break语句用在while和for循环中。如果我们使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一...原创 2018-04-10 16:57:19 · 779 阅读 · 0 评论 -
python2.7入门---循环语句(for&嵌套循环)
咱们直接先来看for循环。Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。然后再来看一下它的语法结构:for iterating_var in sequence: statements(s) 这是他的工作流程图: 来,咱们看实例来:#!/usr/bin/python# -*- coding: UTF-8 -*- for letter in ...原创 2018-04-10 16:21:20 · 2813 阅读 · 0 评论 -
python2.7入门---条件语句
前段时间呢,把MongoDB的基础内容了解的差不多了。接下来,就开始学习python2.7的基础内容喽。接着前面的知识点来学习。首先,来看一下条件语句。Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。咱们先来通过下图来简单了解条件语句的执行过程: 我们要知道,Python程序语言指定任何非0和非空(null)值为true,0 或者 nu...原创 2018-04-10 14:42:32 · 849 阅读 · 0 评论 -
python2.7入门---循环语句(while)
接下来就要了解循环语句了。我们都知道,程序在一般情况下是按顺序执行的。编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式: Python提供了for循环和while循环(在Python中没有do..while循环),我们通过表单看一下:循环类型描述while 循环在给定的判断条件为 true 时执行...原创 2018-04-10 14:59:52 · 2057 阅读 · 0 评论 -
MongoDB入门---GridFS&固定集合&自动增长
经过前段时间的学习,对MongoDB有了一个大概的了解了。那么今天呢,就来看一下新的东西。在MongoDB中,GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。GridFS 可以更好的存储大于16M的文件。GridFS 会将大文件对象分割成多个小的chunk(文件片段),...原创 2018-04-09 15:03:08 · 459 阅读 · 0 评论