mysql笔记
时间:2022-06-26
本文章向大家介绍mysql笔记
,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
读写分离,主从,master-slave
- master机器只用来写入
- slave机器只能用来读取
- 读写分离的问题:数据同步的问题,master机器会把新写入数据的同步到slave机器上,毫秒级别
django配置如下
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'db2': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db2.sqlite3'),
},
}
手动进行读写分离的orm操作
def write(request):
models.Products.objects.using('default').create(prod_name='熊猫公仔', prod_price=12.99)
return HttpResponse('写入成功')
def read(request):
obj = models.Products.objects.filter(id=1).using('db2').first()
return HttpResponse(obj.prod_name)
mysql binlog的作用
- binlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改。
mysql 慢查询日志
# 慢查询日志存放路径
log slow queries = /data/mysqldata/slowquery.log
# 多慢才叫慢查询的定义
long_query_time = 2
mysql explain语句
explain select * from s_books;
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------+
| 1 | SIMPLE | s_books | NULL | ALL | NULL | NULL | NULL | NULL | 2 | 100.00 | NULL |
+----+-------------+---------+------------+------+---------------+------+---------+------+------+----------+-------+
1 row in set, 1 warning (0.01 sec)
不能漫无目的的建索引(create index)
- 因为索引建的多了以后,同样会带来性能问题,因为每多一个索引,都会增加写操作的开销和磁盘空间的开销。
- 有针对性的建索引,通过explain和查看慢查询日志,来找出性能的瓶颈
django程序如何进行优化
- 缓存策略,redis
- 耗时任务异步化,celery
- 优化orm查询,优化queryset查询
- 静态资源存到cdn(阿里云图片云存储,七牛云,又拍云)
- 负载均衡
几个链接
mysql建索引
- CREATE INDEX indexName ON mytable(username(length));
- ALTER table tableName ADD INDEX indexName(columnName)
mysql复合索引,针对多个字段一起建索引
- CREATE INDEX idx_example ON table1 (col1 ASC, col2 DESC, col3 ASC)
- HDUOJ-----2065"红色病毒"问题
- HDUOJ -----1686
- go语言读取csv文件并输出的方法
- HDUOJ----3342Legal or Not
- go语言基本类型
- HDUOJ----2647Reward
- hduoj------确定比赛名次
- HDUOJ----1165Eddy's research II
- HDUOJ-----1556Color the ball
- HDUOJ-----2175取(m堆)石子游戏
- Golang语言社区-Go语言递归
- go语言mongdb管道使用(一)
- HDUOJ---------2255奔小康赚大钱
- HDUOJ------1711Number Sequence
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解