03 2018 档案
摘要:- select * from userinfo limit 20000,10 # 数据越往后越慢 - 索引表中扫: select * from userinfo where id in (select id from userinfo limit 20000,10) # 也慢 - select *
阅读全文
摘要:DBA工作:通过日志找到执行慢的sql语句 慢日志: - 执行时间 > 10 - 未命中索引 配置: - 基于内存 show variables like '%query%'; set global 变量名 = 值 - 基于配置文件 mysqld --defaults-file = '配置文件路径+
阅读全文
摘要:explain + sql语句 返回的type类型有 all 全表扫描(特殊的有limit),type为此类型时,表示该表可以优化 index 全索引扫描 range 对索引列进行范围查找 index_merge 合并索引,使用多个单列索引 ref 根据索引查找一个或多个值 eq_ref 连接时使用
阅读全文
摘要:select * from (select * from tb where id<10) as B
阅读全文
摘要:备份数据表结构+数据 mysqldump -u root -p db1 > db1.sql 只备份数据表结构 mysqldump -u root -p -d db1 > db1.sql 还原数据表 mysqldump -u root -p db2 < db1.sql
阅读全文
摘要:1 在 https://dev.mysql.com/downloads/mysql/ 上下载mysql压缩包 2 解压,并把bin目录加入环境变量 3 初始化,完成后会在mysql根目录下生成data目录 mysqld --initialize-insecure 4 启动mysql服务器: mysq
阅读全文
摘要:作用: - 约束 - 加速查找 普通索引:加速查找 create index 索引名称 on 表名(列名,) drop index 索引名称 on 表名 主键索引:加速查找+不能为空+不能重复 create unique index 索引名称 on 表名(列名) drop unique index
阅读全文
摘要:视图 # 视图也是一张表,但在data文件里只有表结构,没有表数据 # 不建议使用,扩展性差,程序需改变时,依赖的视图也要改变 # 视图牵涉到多张表时,视图中的记录不能修改。 create view course2teacher as select * from course inner join
阅读全文
摘要:创建本地账号 create user 'egon1'@'localhost' identified by '123'; # mysql -uegon1 -p123 创建远程账号 create user 'egon2'@'192.168.31.10' identified by '123'; # my
阅读全文
摘要:内连接 select * from employee inner join department on employee.dep_id = department.id 左连接 在内连接的基础上保留左表记录 select * from employee left join department on
阅读全文
摘要:select * from employee where name regexp '^jin' select * from employee where name regexp '^jin.*(g|n)$' select * from employee where name = 'a_' # _代表
阅读全文
摘要:语法顺序: select distinct 字段1,字段2,字段3 from 库.表 where 条件 group by 分组条件 having 过滤 # 执行顺序的话,到这步会返回运行select语句,之后再运行order by order by 排序字段 limit n; # 限制打印到屏幕上的
阅读全文
摘要:多对一 : 只需设个外键 外键变种之一对一:普通外键关联的表是一对多关系,如果外键上再加上唯一索引,表就会变成一对一关系。 外键变种之多对多:
阅读全文
摘要:not null约束,需设置默认值 sex enum('male','female') not null default 'male' unique 约束,值唯一 单列唯一: create table department( id int unique, name char(10) unique);
阅读全文
摘要:整形类型:该类型没必要指定显示宽度,使用默认的就ok。 类型 大小 TINYINT 1字节 SMALLINT 2字节 MEDIUMINT 3字节 INT或INTEGER 4字节(后面加的宽度不是存储宽度,而是显示宽度) create table t5(id int(5) unsigned zerof
阅读全文
摘要:表的类型就是存储引擎。如CSV,InnoDB,MEMORY,BLACKHOLE等。 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。 用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写
阅读全文
摘要:sql语言分3种类型: 1 DDL语句 数据库定义语句:数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER 2 DML语句 数据库操纵语言:插入删除更新查询数据,INSERT DELETE UPDATE SELECT 3 DCL语句 数据库控制语言:例如控制用户的访问权限GRA
阅读全文
摘要:针对mysql5.5以上。 Windows平台: \s 查看Server、Db、Client、Conn的字符编码,不一致需改为一致 统一字符编码: 在mysql安装目录下新建my.ini,添加内容,可参考my_default.ini文件内容 Linux平台: 敲入命令 vim /etc/my.cnf
阅读全文
摘要:Windows平台: select user() 查看当前登录用户名 mysql -uroot -p123 切换为root账号登陆 mysqladmin -uroot -p password "123" 修改root账户密码 mysqld --install 把mysql做成系统服务,每次开机时可以
阅读全文
摘要:阻塞IO模型:以前写的套接字通信都是阻塞型的。通过并发提高效率 非阻塞IO模型: 多路复用IO模型,又叫事件驱动IO,使用select模块或poll(epoll)实现。 select模块优点:只用单线程(进程)执行,占用资源少,同时能为多客户端提供服务。 缺点:select()接口并不是实现‘事件驱
阅读全文
摘要:多线程并发、包括线程池,是操作系统控制的并发。如果是单线程,可以通过协程实现单线程下的并发。 协程 又称微线程,是一种用户态的轻量级线程,由用户程序自己控制调度。 python的线程属于内核级别的,由操作系统控制调度(如单线程遇到io或执行时间过长就会被迫交出cpu执行权限,切换其他线程运行) 而单
阅读全文
摘要:提交任务的两种方式。 同步调用:提交完任务后,就在原地等待任务执行完毕,拿到结果,再执行下一行代码,导致程序是串行执行 异步调用:提交完任务后,不等待任务执行完毕 简单网页爬虫示例:
阅读全文
摘要:多线程实现并发: 多进程实现并发: 缺点:无限的开进程线程,会导致服务端崩溃。 可用进程池线程池替代。
阅读全文
摘要:from threading import Timer import random class Code: def __init__(self): self.make_cache() def make_cache(self,interval =15):#生成的验证码保存在cache里,过15s重新生成验证码,更新cache s...
阅读全文
摘要:信号量相当于一个锁锁着的房间里的多个床位,同一时间可以有多个线程获得信号量,而锁则只能被一个线程获得。
阅读全文
摘要:Lock() 互斥锁会导致死锁,用RLock()递归锁代替。 递归锁:可以连续acquire多次,每acquire一次计数器+1(无论acquire的是哪个锁),只有计数为0才能被acquire
阅读全文
摘要:GIL不是Python特性,是CPython解释器特性,因为CPython有垃圾回收机制。 GIL 本质是互斥锁,保护解释器安全。 保证线程安全,垃圾回收线程不会和其他线程一起运行。 多个线程不能实现真正并行,因为解释器GIL锁的原因(同一时间解释器只执行一个线程),但是,线程A取得GIL锁后可能因
阅读全文
摘要:1、开进程的开销远大于开线程 1、其他线程都结束后,主线程才会结束,守护线程才会结束。即守护线程要等其他所有非守护线程结束后才会结束 2、其他线程都结束后,主线程才会结束,主进程才会结束,守护进程才会结束。貌似守护进程和守护线程是相同条件下结束。
阅读全文
摘要:进程和线程模块下都有队列类。 线程队列: 进程队列: JoinableQueue示例:
阅读全文
摘要:开启子进程的两种方式: 1、使用Process类 2、写子类继承Process类 使用多进程实现并发: 守护进程:p.deamon = True 1、主进程运行结束后子进程也结束 2、守护进程里不能再新开子进程 互斥锁:访问同一个文件,同一个打印终端等,把并发改为串行 与join的区别:join是全
阅读全文
摘要:对于一个seq,得到: 统计文件行数:
阅读全文
摘要:例子: \033[1;31;40m <!--1-高亮显示 31-前景色红色 40-背景色黑色--> 前景色 背景色 颜色 30 40 黑色 31 41 深红 32 42 绿 33 43 黄色 34 44 蓝色 35 45 紫色 36 46 深绿 37 47 白色 \33[0m 关闭所有属性 \33[
阅读全文
摘要:如果python中导入的package或module不在环境变量PATH中,可以使用sys.path将要导入的package或module加入到PATH环境变量中,之后便能使用相对导入方法。 拿homework项目来说, 修改sys.path,把homework这个路径写到sys.path列表中,
阅读全文
摘要:定义类的两种方法: 1.class定义 2.type(类名,类的基类们,类的名称空间) 自定义元类控制类的创建(在元类的init方法里做控制): 自定义元类控制类的实例化(重写call方法):
阅读全文
摘要:# 单例模式 class MySQL: __instance = None def __init__(self): self.host = '127.0.0.1' self.port = 3306 @classmethod def singleton(cls): if not cls.__instance:...
阅读全文
摘要:参数1:字符串形式的命令 参数2:全局作用域(字典形式),如果不指定默认使用globals() 参数3:局部作用域(字典形式),如果不指定默认使用locals()
阅读全文

浙公网安备 33010602011771号