摘要: 一、架构 MySQL的架构如下: 二、锁 MySQL的锁主要分为读锁和写锁。读锁是共享的,在同一时间可以有多个客户端对相同的资源执行读操作。写锁是排他的,会阻止其他的写锁和读锁的操作。 三、事务 事务是指一个独立的工作单元。这一个工作单元要么全部执行,要么全部不执行。如果执行到一半时某条语句未能正确 阅读全文
posted @ 2018-03-07 17:13 右威卫大将军 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 通过位运算可以得到只出现1次的唯一元素,但是如果有两个元素出现1次,则需要更进一步。 对整个数组依次进行异或运算后,得到的是两个出现一次元素的异或,之后将这两个元素的最后面是1的位记录下来,并以此为标杆判断整个数组,将该位为1和0的元素分为2组,对两组数据分别求异或,即可得到这两个元素。 代码如下: 阅读全文
posted @ 2018-03-02 09:50 右威卫大将军 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 一、使用__new__方法可以实现单例模式: TestClass类实例化时,因为自身的__new__方法没有重写,默认会调用其父类,也就是SingleTon的__new__方法。而SingleTon的__new__方法重写为仅当自身没有instance属性时才会返回一个类实例,从而确保了仅生成1个实 阅读全文
posted @ 2018-02-25 17:25 右威卫大将军 阅读(181) 评论(0) 推荐(0) 编辑
摘要: import functools def log(text): if isinstance(text, str): def decorator(func): @functools.wraps(func) def wrapper(*args, **kw): func(*args, **kw) prin 阅读全文
posted @ 2018-02-25 09:42 右威卫大将军 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 列出数据表中的重复数据: 删除重复数据: 阅读全文
posted @ 2018-02-24 21:26 右威卫大将军 阅读(157) 评论(0) 推荐(0) 编辑
摘要: SQL中,联结主要分为6种类型: 1.内联结 将两张表的公共的数据显示出来,即显示两张表的交集: 2.左外联结 将两张表中,只存在于左表中而不存在于右表中的数据筛选出来: 如果不加后面的where子句,会将两张表的共同部分也显示出来。 3.右外联结 将两张表中,只存在于右表中而不存在于左表中的数据筛 阅读全文
posted @ 2018-02-24 12:17 右威卫大将军 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1.Max的优化 如果没有索引,max需要检索所有行才能得出结果,这里可以通过建立索引的方式进行优化: 这样,再查询price的最大值就能迅速得出结果。 2.子查询的优化 下列子查询: 可以用join方法进行优化: 但是,如果vendors中含有重复的prod_id,则会返回重复的查询结果。因此,需 阅读全文
posted @ 2018-02-23 23:16 右威卫大将军 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 1.连接数据库 查看可用数据库使用show命令: 连接数据库使用use命令: 获取数据库内的所有表: 查看表结构: 2.检索数据 检索某一列或某几列: 检索所有列: 如果只想显示一列中的不同数值,可以用distinct关键字: 限定结果的数量,用LIMIT关键字: 3.排序 排序使用order by 阅读全文
posted @ 2018-02-23 11:59 右威卫大将军 阅读(163) 评论(0) 推荐(0) 编辑
摘要: class Time(object): def __init__(self, hr, min): self.hr = hr self.min = min def __str__(self): return '%d:%d' %(self.hr, self.min) __repr__ = __str__ 阅读全文
posted @ 2018-02-20 21:27 右威卫大将军 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 类方法的一个应用是对类在实例化时对传入的参数进行处理。例如,对于传入的字典,想在实例化时将其键提取出来排序,可以如下操作: 按照如下方式调用: 得到的k即为['a', 'b', 'c', 'd'] 阅读全文
posted @ 2018-02-20 18:50 右威卫大将军 阅读(249) 评论(0) 推荐(0) 编辑