# 查配置
show variables like '%';
# 放开用户的远程操作权限
GRANT ALL PRIVILEGES ON *.* TO '<user>'@'%' IDENTIFIED BY '<password>' WITH GRANT OPTION;
# 刷新权限规则生效
flush privileges;
# 在线改配置
set <global|session>
# 查看隔离级别
select @@tx_isolation;
# 设置隔离级别
set session transaction isolation level read UNCOMMITTED;
# 开启事务
start transaction;
# 事务回滚
rollback;
# 事务提交
commit;
# 关闭事务自动提交
set autocommit = 0
# 加共享锁
<command> lock in share mode
# 索引创建
ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)
# 删除索引
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
# 查看索引
show index from table_name;
show keys from table_name;
架构设计
设计模式
关于设计模式的一些简单案例
概念简述
单一责任原则
就一个类而言,应该只有一个引起它变化的原因。
开放封闭原则
软件实体应该是可以扩展的,但是不可修改。
依赖倒转原则
1.高层模块不应该依赖底层模块,两个都应该抽象依赖。
2.抽象不应该依赖细节。细节应该依赖抽象。
迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的摸一个方法的话,应该同通过第三方转发这个调用
组合聚合复用原则
尽量使用组合聚合,尽量不要使用类继承。
简单工厂模式
定义超类,子类通过继承重写方法实现多态,创建一个Factory工厂类,调用统一的超类接口,实例化相应的子类对象,实现解耦。
策略模式
封装实现同一功能的不同算法,通过Context上下文方式加载不同策略,可以和简单工厂模式结合使用。
装饰模式
动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。
代理模式
为其他对象提供一种代理以控制对这个对象的访问。
工厂方法模式
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到了其子类。
原型模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
模板方法模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤。
外观模式(门面模式)
为了系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这以子系统更加容易使用。
建造者模式
将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。
观察者模式(发布订阅)