![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库操作
文章平均质量分 80
r_martian
这个作者很懒,什么都没留下…
展开
-
数据库及程序开发日常命名实践【一期】
本篇主要记录日常项目中语义化命名(变量、类、常量、函数、接口、属性等)的一些实践工作。中文英文中文英文中文英文视图view字段field服务器server加载loading行row列column集群cluster别名alias操作operation控制control危机danger信用credit贷款loan热修复hotfix仓库repository镜像image异常exception包原创 2021-11-07 19:37:51 · 773 阅读 · 0 评论 -
SqlAlchemy 常用查询器和执行器
常用的SQLAlchemy查询过滤器过滤器说明filter()把过滤器添加到原查询上,返回一个新查询filter_by()把等值过滤器添加到原查询上,返回一个新查询limit使用指定的值限定原查询返回的结果offset()偏移原查询返回的结果,返回一个新查询order_by()根据指定条件对原查询结果进行排序,返回一个新查询g...转载 2019-08-24 11:30:07 · 595 阅读 · 0 评论 -
MySQL数据写入ES实践
本篇主要说的是在【爬虫POI】一文中爬取的poi数据的基础上,将数据从mysql导入elasticsearch中,从而便于检索和查询。安装 elasticsearch,elasticsearch-head,kibana以便可视化查看,如下图一、定义索引根据mysql表的字段信息,来定义es索引类型| poi | CREATE TABLE `poi` ( `id` int(11)...原创 2019-08-18 23:50:57 · 3262 阅读 · 0 评论 -
MYSQL force index索引优化
mysql索引优化一直以来是DBA和开发人员长期坚持的一项基本工作,合理的索引对于业务来说非常重要,合理的索引能有效改善性能。因此在开发中,定期排查索引的有效性很重要,排查的根据就是历史sql,排查的目的就是优化索引,一个合格的开发人员要考虑未来1年的数据量的情况下sql的执行效率。索引是否有效的方法是explain,它能反应很多内容,具体的不再赘述看下面的sql示例。访问类型 ALL、ind...原创 2019-07-13 10:04:20 · 2010 阅读 · 1 评论 -
MYSQL 线上表删除异常
mysql表删除异常exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1175 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column' in /opt/ho...原创 2019-03-23 17:33:20 · 478 阅读 · 0 评论 -
【深度】MySQL分页查询优化方案
MySQL是通过select * from order limit offset, N 的方式实现分页查询的。但并不是跳过offset行,而是取offset+N行,然后放弃前offset行,返回N行,当offset很小的时候,是没有问题的,当offset很大的时候,效率就非常的地下,要么控制返回的总页数,要么对超过特定阈值的页数进行SQL优化。一、首先应该开启慢查询跟踪慢sqlmysql>...原创 2019-03-19 07:17:07 · 2220 阅读 · 1 评论 -
Scrapy爬虫数据存数据库
这里的爬虫代码是基于第一个爬虫程序【重写第一个爬虫程序】,由于是python3.6.4,所以不能使用mysqldb,那就采用pymysql。一、安装并测试pymysqlpip install pymysql在python cli下测试是否安装成功>>> import pymysql>>>测试与本地mysql数据库连接情况>&原创 2018-10-11 22:17:47 · 893 阅读 · 1 评论 -
【深度】MYSQL ddl原理及千万级表修改不停服解决方案
mysql 的DDL语句在执行的时候会锁表,在数据量大的情况下锁表就会严重影响正常的数据写入,innodb存储引擎在DDL时执行操作如下:按照原始表(original_table)的表结构和ddl语句,新建一个不可见的临时表(temporary_table)在原表上面加上WRITE LOCK,阻塞所有的更新操作(insert、delete、update等操作)执行insert into ...原创 2018-08-18 20:58:56 · 978 阅读 · 2 评论 -
MYSQL 索引与锁
由于最近接触的mysql索引问题比较多,特地查了些索引相关的文章,进行分析学习,文章列表如下:1 mysql加锁详解 2 SQL中的where条件,在数据库中提取与应用浅析 3 MySQL加锁处理分析【重点】 4 MySQL锁算法详解需要理解的一些点: 1 索引与存储引擎有关 2 锁是在索引上实现的 3 索引分类(聚簇,非聚簇;主键,唯一,联合,覆盖,普通等) 4 加锁过程...原创 2018-08-17 22:22:29 · 561 阅读 · 0 评论 -
MYSQL 索引最左匹配原则
转自知乎问题:mysql索引最左匹配原则的理解?具体问题描述如下:CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `cid` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `nam...原创 2018-06-18 11:06:45 · 2600 阅读 · 1 评论 -
MySQL Explain详解
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获...转载 2018-06-17 19:53:30 · 188 阅读 · 1 评论 -
缓存失效、穿透、并发、雪崩问题及解决方法
1 缓存失效 引起这个原因的主要因素是高并发下,一般设定一个缓存的过期时间时,并发很高时可能会出在某一个时间同时生成很多的缓存,并且过期时间在同一时刻,这个时候就可能引发——当过期时间到后,这些缓存同时失效,请求全部转发到DB,DB可能会压力过重。 处理方法: 将缓存失效时间分散开,不要所以缓存时间长度都设置成特定时长;比如在原有的失效时间基础上增加一个随机值,比如1-5分钟随机,这...原创 2018-04-03 23:14:46 · 1405 阅读 · 1 评论 -
MYSQL 表索引
查看方式show create table users;show index from users;show keys from users;如下图所示: 说明Table 表的名称 Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1 Key_name 索引的名称 Seq_in_index 索引中的列序列号,从1开始 Column_name 列名称 ...原创 2018-03-18 10:23:35 · 206 阅读 · 0 评论 -
MYSQL 性能优化之profiling
查看是否开启 show variables like ‘%profiling%’; 或者 show profiles;开启 默认最多允许存储15条记录 set profiling = 1; +————————+——-+ | Variable_name | Value | +————————+——-+ | have_profiling | YES原创 2017-08-20 23:55:16 · 387 阅读 · 0 评论 -
MYSQL 性能优化之explain详解
explain得到最后优化后的执行计划。详细看看explain结果: mysql> explain select * from tbl_section s left join tbl_course c on c.id = s.course_id; +—-+————-+——-+——–+—————+———+———+———————-+——+——-+ | id | select_type | tabl原创 2017-08-20 17:35:09 · 328 阅读 · 0 评论 -
windows下安装memcache
memcache是一个分布式的内存对象缓存系统,用于动态Web应用减轻数据库负载。通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高大流量web应用的访问速度。Memcache基于一个存储键/值对的hashmap,格式简单,不支持list,array等复杂数据格式,提供的方法很少。工作流程: 先检查客户端的请求数据是否在memcache中,若存在,直接把请求数据返回即可,否则,查询数原创 2016-03-04 10:59:28 · 441 阅读 · 0 评论 -
MongoDB入门
MongoDB 是一个基于分布式文件存储的数据库。特点:开源、面向文档、非关系型、易于扩展、支持多类型数据存储。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品。一、Windows下安装流程 1.官网下载msi安装包 2.安装,并将路径下的bin目录加入系统环境变量path中,方便命令的使用 3.win+原创 2016-01-14 20:58:41 · 408 阅读 · 0 评论 -
Yii2.0 中间表查询
yii2 中,中间表查询实现,是通过via 与 viaTable实现的。个人认为实现原理是一样的。 前提: user表 id course-enrollment表 course_id, user_id course表 id 要求:在course模型中实现查询:代码如下:via()函数:via() public method//定义relationpublic function getEn原创 2016-01-06 19:22:16 · 3185 阅读 · 0 评论 -
MySQL中delete,truncate与drop的区别
delete,truncate和drop是mysql数据库经常用到的删除操作命令。虽然都是删除操作,但对表的影响有很大不同。 相同点:都具有删除功能。 不同点:delete和truncate操作只删除表中数据,而不删除表结构;delete删除时对于auto_increment类型的字段,值不会从1开始,truncate可以实现删除数据后,auto_increment类型的字段值从1开始。但是d原创 2015-10-22 22:16:41 · 2480 阅读 · 0 评论