03 2018 档案

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