自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 explain分析SQL

explainexplain是什么?使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。explain能干嘛?表的读取顺序数据读取操作的操作类型那些索引可以使用那些索引被实际使用表之间的引用每张表有多少行被优化器查询explain怎么玩?explain + SQL语句explain字段解释id表的读取顺序select查...

2020-01-30 23:56:15 272

原创 影响服务器性能的几个方面

影响服务器性能的几个方面:1.服务器硬件2.服务器的操作系统3.数据库存储引擎的选择4.数据库参数配置5.数据库结构设计和SQL语句SQL性能下降原因:1.查询语句写的不好2.索引失效3.关联查询太多join4.服务器调优及各个参数设置SQL加载顺序:手写SQL的顺序:select distinctfrom<left_table>join <r...

2020-01-30 22:19:20 364

原创 基准测试

什么是基准测试?基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进行基准测试以评估变化对性能的影响。基准测试是针对系统设置的一种压力测试基准测试特点:直接、简单、易于比较,用于评估服务器的处理能力可能不关心业务逻辑,所使用的查询和业务的真实性可以和业务环境没关系压力测试特点对真实的业务数据进行测试,获得真实系统所能承受的压力需要针...

2020-01-30 06:08:27 1762

原创 MySQL引擎之Memory

MySQL引擎之Memory也称HEAP存储引擎,所以数据保存在内存中,如果MySQL服务重启数据会丢失,但是表结构会保存下来功能特点1.支持HASH索引和BTree索引(hash-等值查找 where id = 1;BTree-范围查找 )指定索引为BTreecreate index_t1(字段名) using btree on test_memory(t1(10));sho...

2020-01-30 04:47:55 207

原创 MySQL引擎之CSV

‘’’MySQL引擎之CSV文件系统存储特点数据以文本方式存储在文件中.CSV文件存储表内容.CSM文件存储表的元数据如表状态和数据量.frm文件存储表结构信息刷新表:(对新增的数据要执行 flush tables; )CSV格式进行数据存储特点1.不支持自增2.不支持索引 不让创建主键3.不支持非空片段使用场景适合做为数据交换的中间表...

2020-01-30 03:49:10 71

原创 MySQL引擎之InnoDB

MySQL5.5 及之后版本默认存储引擎,支持事务的ACID特性Innodb使用表空间进行数据存储innodb_file_per_tableON:独立表空间,tablename.ibdOFF:系统表空间:ibdataX X是一个数字系统表空间和独立表空间如何选择?系统表空间会产生IO瓶颈,刷新数据的时候是顺序进行的所以会产生文件的IO瓶颈独立表空间可以同时向多个文件刷新数据Inno...

2020-01-30 02:27:00 78

原创 MySQL引擎之MyISAM

‘’’MySQL5.5之前版本默认存储引擎MyISAM存储引擎表由MYD(数据文件)和MYI(索引文件)组成什么是锁锁主要作用是管理共享资源的并发访问锁用于实现事务的隔离性锁的类型共享锁(也称读锁)针对同一份数据 多个读操作可以同时进行而不会互相影响独占锁(也称写锁)当前写操作没有完成前,它会阻断其了写锁和读锁锁的粒度表级锁行级锁MyISAM存储引擎特性1.并发性与锁级别...

2020-01-30 01:59:51 92

原创 账户管理

‘’’账户管理在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的crudMySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几种服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连...

2020-01-29 05:32:18 181

原创 索引

索引思考在图书馆中是如何找到一本书的?一般的应用系统对比数据库的读写比例在10:1左右(即有10次查询操作时有1次写的操作),而且插入操作和更新操作很少出现性能问题,遇到最多、最容易出问题还是一些复杂的查询操作,所以查询语句的优化显然是重中之重解决办法当数据库中数据量很大时,查找数据会变得很慢优化方案:索引索引是什么索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个...

2020-01-29 03:57:13 97

原创 事务介绍

‘’’事务的介绍事务为什么要有事务事务广泛的运用于订单系统、银行系统等多种场景例如:A用户和B用户是银行的储户,现在A要给B转账500元,那么需要做以下几件事:检查A的账户余额>500元;A 账户中扣除500元;B 账户中增加500元;正常的流程走下来,A账户扣了500,B账户加了500,皆大欢喜。那如果A账户扣了钱之后,系统出故障了呢?A白白损失了500,而B也没有...

2020-01-28 20:01:22 142

原创 MySQL高级-视图

‘’’视图1.问题对于复杂的查询,往往是有多个数据表进行关联查询而得到,如果数据库因为需要等原因发生了变化,为了保证查出来的数据与之前相同,则需要在多个地方进行修改维护起来非常麻烦解决办法:定义视图2.视图是什么通俗的讲,视图就是一条SELECT语句执行后返回的结果集,所在我们在创建视图的时候主要的工作就落在创建这条SQL查询的语句上。视图是对若干张基本表的引用,一张虚表,查询...

2020-01-28 07:11:24 116

原创 Python新增数据到数据库

'''数据库的-新增-更新-删除'''from pymysql import *# import pymysqldef option_db(): try: conn = connect(host='127.0.0.1', port=3306, user='root',passwd='root', db='pyth...

2020-01-28 06:17:19 368

原创 练习-商品表的查询

@Software: PyCharm```‘’’输入1-查询所有商品输入2-所有的商品种类输入3-查询所有的品牌输入4-退出‘’’from pymysql import *class Jd(object):def __init__(self): # 连接数据库 self.conn = connect(host='127.0.0.1', port=3306, use...

2020-01-28 04:33:50 2039

原创 封装MySQL-DB类

'''fetchone()执行查询语句时,获取查询结果的第一个数据,返回一个元组fetchall()执行查询时,获取结果集的所有行,一行构成一个元组,再将这元组,再将这些元组装入一个元组返回使用python连接数据库'''# from pymysql import *## try:# conn = connect(# host='localhost',...

2020-01-28 03:31:26 194

原创 Python操作MySQL步骤

from pymysql import *try: # 连接数据库 conn = connect(host='127.0.0.1', port=3306, db='python03', user='root',passwd='root', charset='utf8')except Exception as e: print(e)# 获取游标对象curs...

2020-01-27 22:33:01 54

原创 python基础-练习(五)

# 1题 遍历”12“,遍历range(12)num_str = "12"for i in num_str: print(i)for index in range(len(num_str)): print(num_str[index])for i in iter(num_str): print(i)for i in range(12): print(...

2020-01-26 04:17:51 570

原创 python基础-练习(四)

1题:lis1 = ['name', 'author', 'introduce']lis2 = ['NORWEGIAN WOOD', 'Haruki Murakami', 'balalalal']# 将lis1与lis2以键值对的形式呈现def fmap(lis1, lis2): return (lis1, lis2)print(dict(map(fmap, lis1, lis...

2020-01-25 05:18:29 227

原创 python基础-练习(三)

#1题、 怎么使‘1’ + 2的结果输出为3?a = '1'b = 2print(int(a)+b)#2题、‘a’ > 1 True还是False?Why?# 答:False 字符串和数值不能比较可转十六进制比较#3题'''s = 'Have a nice weekend everyone'取出a --> s[5]print(s[len(s)]) # 输出的是...

2020-01-24 07:00:22 118

原创 python基础-练习(二)

# 1、'ax' < 'xa' 结果为: True# 2、以下程序如果输入666执行哪个语句?为什么# 程序执行'if执行了'语句, == 与 or 相比较 ==优先,# temp == 'YES' or 'yes' 中'YES'与temp比较,因YES永远为Ture,# 将永远执行第一条语句,即使为False or 'yes'比较也为True执行# 第一条语句。temp = ...

2020-01-24 05:45:05 210

原创 python基础-练习(一)

# 1、打印输出打-->老李年龄:18(注意此处的年龄为整数型)age = 18print('老李年龄:%d'%age)print(type(age)) #int# 2、打印输出打-->老李年龄:18,性别为女性age =18sex ='女'print('老李年龄:%d 性别:%s'%(age,sex))print('老李年龄:%d 性别:%s'%(age,sex)...

2020-01-24 05:11:48 318

原创 python高级编程技巧-练习

# @Time: 2020/1/20 18:16# @Author: Ellen# @Software: PyCharm'''# 1>.如何区别可变数据类型和不可变数据类型# 可变 list dict(字典中的key,必须是不可变类型)set# 在内存地址不变的情况下,值可变lis.append(num)# 不可变 str int tuple bytes 布尔类型 内存改变值...

2020-01-21 06:45:15 317

原创 gevent 案例&进程-线程-协程对比

'''下载器'''import geventfrom gevent import monkeymonkey.patch_all() import requests # urllib 进行封装 爬虫 80-90%用requestsdef download(url): print('get: %s' % url) res = requests.get(u...

2020-01-20 03:53:37 147

原创 使用greenlet & gevent 完成多任务

'''协程协程 又称微线程协程是pthon中别外一种实现多任务的方式 只不过比线程更小占用更小执行单元(理解为需要的资源)python中的协程大概经历了如下三下阶段:1.最初的生成器变形yield/send2.yield from3.在最近的python3.5版本中引入async/await关键字使用greenlet完成多任务安装模块: pip install greenlet...

2020-01-20 03:12:55 112

原创 yield完成多任务

'''使用yield完成多任务'''# import time# def task1():# while True:# print('--1--')# time.sleep(0.1)# yield# def task2():# while True:# print('--2--')# ...

2020-01-20 01:36:11 113

原创 生成器-send方法

python多任务-协程同步 异步同步-是指代码调用IO操作时 必须等待IO操作完成才返回调用方式 同步是串行异步-是指代码调用IO操作时 不必等IO操作完成就返回的调用方式 异步是并行阻塞 非阻塞阻塞:从调用者的角度出发 如果在调用的时候被卡住 不能再继续向下运行 需要再等待 就说是阻塞非阻塞:从调用都有角度出发 如果在调用的时候 凤有被卡住 能够继续向下运行 无需等待 不说是非...

2020-01-19 21:56:57 543

原创 多任务文件夹复制并添加进度

import multiprocessingimport osdef copy_file(q,file_name, new_folder_name, old_folder_name): '''完成文件拷贝''' # print('拷贝的文件名称为:%s' % file_name) with open(old_folder_name + '/' + file_nam...

2020-01-17 07:03:34 125

原创 多任务文件夹复制案例

# @Time: 2020/1/17 4:38# @Author: Ellen# @File: 多任务文件夹复制.py# @Software: PyCharm'''多任务文件夹复制1.获取用户要复制的文件夹名字2.创建一个新的文件夹3.获取文件夹待拷贝的文件名字 读文件再写4.创建进程池5.添加拷贝任务'''import multiprocessingimport o...

2020-01-17 06:15:27 149

原创 进程池间的进程通信

import multiprocessingdef demo1(q): # 进程池里面的进程 如果出现异常不会主动抛出 尽量做异常处理 try: q.put('a') except Exception as e: print(e)def demo2(q): try: data = q.get() ...

2020-01-17 04:34:40 73

原创 进程池

from multiprocessing import Poolimport os, time, randomdef worker(msg): t_start = time.time() print('%s开始执行,进程号为%d' % (msg,os.getpid())) time.sleep(random.random() * 2) t_stop = ...

2020-01-17 03:30:19 61

原创 多进程共享全局变量吗?

import multiprocessinga = 1def demo1():global aa += 1def demo2():# 打印出来的值是2 说明是共享的 线程是共享# 打印结果是1 进程是不共享的print(a)def main():t1 = multiprocessing.Process(target=demo1)t2 = multiprocessing.Pro...

2020-01-17 03:27:31 1233

原创 进程间的通信

import multiprocessingdef download(q):‘’‘下载数据’’’lis = [11,22,33]for item in lis:q.put(item)print('下载完成 并且保存到队列中...')def analysis(q):‘’‘处理数据’’’analysis_data = list()while True:data = q.get(...

2020-01-17 00:15:58 56

原创 数据库操作

– 连接数据库mysql -u root -p–退出数据库exit/quit–sql语句最后需要有分号;结尾–显示数据库版本select version();–显示时间select now();–查询所有数据库show databases;–DDL(数据定义语句)–创建数据库create database python04;create database python0...

2020-01-16 08:01:15 158

原创 字符串的操作

字符串的其他操作字符串的长度 len()判断一个字符串是否是在另一个字符串中 in求最大值和最小值max() min()分割字符串 split()拼接字符串Join()去空格strip() 去掉一个字符左右两边的空格lstrip() 去掉字符左边的空格rstrip() 去掉字符右边的空格字符串的大小写upper() 全部大写lower() 全部小写capitalize()...

2020-01-16 02:14:48 56

原创 PyCharm 的常规配置

pyCharm的官方网站 http://www.jetbrains.com/PyCharm 的常规配置1.主题的修改 File-settings-apperance-theme2.代码字体(控制台)的修改File-settings-Editer-Font3.关闭更新 File-settings-Appearance Behavior-System Settings-Updates4.快捷...

2020-01-16 01:07:13 144

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除