
MySQL-CRUD之数据库优化方案
文章平均质量分 56
数据库SQL优化大总结之百万级数据库优化方案
谁动了我的bug
不为失败找理由,只为成功找方法。
展开
-
mysql如何实现json数据字段化
现需要写出sql语句将courseLevel中的数据解析为一个个字段导出到excel表中,如下图所示。我们的数据库中有一个字段courseLevel为json格式,如下图所示。那么如何实现这个需求呢?是不是感觉很简单,哈哈哈。...原创 2022-07-31 15:17:39 · 926 阅读 · 0 评论 -
如何使用SQL实现复杂的多表查询【精要版】
哈喽,大家好,今天我们继续来探讨“如何使用SQL实现复杂的多表查询?”,在【简要版】中,我们发现存在以下问题:1.SQL查询速度有待提高,当数据达到10万条时,从10万条数据里面做统计查询会非常慢;2.当用户不是推广员仅仅只是与XXX推广员存在绑定关系(不是XXX的下级)时,无法查出相应数据。经过分析,我在推广员数据库表中新增了2个属性,即【累计邀请,累计收益】,数据表结构如下所示:...原创 2019-11-07 08:32:42 · 633 阅读 · 0 评论 -
如何实现复杂的多表查询【简要版】
最近,我独自在负责一个关于二级分销方面的大模块,其中一小块的设计中要求查询如下信息:涉及到的数据表结构如下:1.推广员表CREATE TABLE `dis_populist` ( `PromotersId` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `ShopId` int(11) DEFAULT NULL COMMENT...原创 2019-11-06 13:12:05 · 956 阅读 · 0 评论 -
MYSQL数据库的备份与恢复
数据备份进入超级管理员sudo -s进入mysql库目录cd /var/lib/mysql运行mysqldump命令备份本地数据库:mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;按提示输入mysql的密码备份远程数据库:mysqldump -h远程数据库地址 -u用户名 -p 数据库名 > ~/...原创 2018-12-20 13:38:26 · 299 阅读 · 0 评论 -
GROUP_CONCAT,SUBSTRING_INDEX的妙用(将多条数据合并成一行,并且根据某些列的合并值做条件判断来生成最终值)
融e学-一个专注于重构知识,培养复合型人才的平台:http://www.i-ronge.com/(1)不做处理:SELECT e.class_id AS class_id, c.course_name AS class_name, u.stuNum AS stu_num, u.USER_NAME AS student_name, u.department AS departme...原创 2018-12-14 16:09:48 · 861 阅读 · 0 评论 -
MySQL的JOIN(五):JOIN优化实践之排序
这篇博文讲述如何优化JOIN查询带有排序的情况。大致分为对连接属性排序和对非连接属性排序两种情况。插入测试数据。CREATE TABLE t1 ( id INT PRIMARY KEY AUTO_INCREMENT, type INT ); SELECT COUNT(*) FROM t1; +----------+ | COUN...原创 2018-11-21 20:53:11 · 684 阅读 · 0 评论 -
MySQL的JOIN(四):JOIN优化实践之快速匹配
这篇博文讲述如何优化扫描速度。我们通过MySQL的JOIN(二):JOIN原理得知了两张表的JOIN操作就是不断从驱动表中取出记录,然后查找出被驱动表中与之匹配的记录并连接。这个过程的实质就是查询操作,想要优化查询操作,建索引是最常用的方式。那索引怎么建呢?我们来讨论下,首先插入测试数据。CREATE TABLE t1 ( id INT PRIMARY KEY AUTO_IN...原创 2018-11-21 20:47:12 · 258 阅读 · 0 评论 -
MySQL的JOIN(三):JOIN优化实践之内循环的次数
这篇博文讲述如何优化内循环的次数。内循环的次数受驱动表的记录数所影响,驱动表记录数越多,内循环就越多,连接效率就越低下,所以尽量用小表驱动大表。先插入测试数据。CREATE TABLE t1 ( id INT PRIMARY KEY AUTO_INCREMENT, type INT ); SELECT COUNT(*) FROM t1; ...原创 2018-11-21 20:40:48 · 432 阅读 · 0 评论 -
MySQL的JOIN(二):JOIN原理
表连接算法Nested Loop Join(NLJ)算法:首先介绍一种基础算法:NLJ,嵌套循环算法。循环外层是驱动表,循坏内层是被驱动表。驱动表会驱动被驱动表进行连接操作。首先驱动表找到第一条记录,然后从头扫描被驱动表,逐一查找与驱动表第一条记录匹配的记录然后连接起来形成结果表中的一条记。被驱动表查找完后,再从驱动表中取出第二个记录,然后从头扫描被驱动表,逐一查找与驱动表第二条记录匹配的...原创 2018-11-21 20:35:46 · 264 阅读 · 0 评论 -
MySQL的JOIN(一):用法
JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。这里描述先甩出一张用烂了的图,然后插入测试数据。CREATE TABLE t_blog( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(50), typeId INT ); ...原创 2018-11-21 20:30:23 · 277 阅读 · 0 评论 -
MYSQL UPDATE使用子查询
融e学-一个专注于重构知识,培养复合型人才的平台:http://www.i-ronge.com/修改前数据:需求:将小盒子学院中拥有两个学号以上学生的学号前面加上前缀“hr”今天我像以前操作mysql写了一个update sql:update edu_user_copy set stuNum=concat('hr',stuNum) where stuNum in (selec...原创 2018-07-26 18:00:56 · 18590 阅读 · 0 评论 -
MySQL 对于千万级的大表要怎么优化?(读写分离、水平拆分、垂直拆分)
融e学-一个专注于重构知识,培养复合型人才的平台:http://www.i-ronge.com/思考如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下:1.数据的容量:1-3年内会大概多少条数据,每条数据大概多少字节;2.数据项:是否有大字段,那些字段的值是否经常被更新;3.数据查询S...原创 2018-04-02 18:36:30 · 12166 阅读 · 1 评论 -
MySQL数据库优化方法详解
一、硬件的优化1.1 cpu优化(64位cpu,建议多核绑定不同的服务)1.2 内存(按照企业发展,合理调控内存)1.3 硬盘 (数量越多越好,性能:ssd(核心高并发业务) > sas(线上普通业务)> sata(线下))Raid 4 4块盘 性能: RAID0 > RAID10 > RAID5 > RAID11.4 网卡 (网卡的ffer,通过...原创 2018-04-03 10:06:27 · 359 阅读 · 0 评论 -
执行没有 WHERE 子句的 UPDATE 要慎重,慎重,再慎重。
在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。set sql_safe_updates=1; 表示开启该参数 ...原创 2018-04-03 11:23:39 · 3024 阅读 · 0 评论 -
SQL语句性能优化
MySQL如何优化表的设计合理化(符合3NF)添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]SQL语句优化分表技术(水平分割、垂直分割)读写[写: update/delete/add]分离存储过程 [模块化编程,可以提高速度]对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ]mysql服务器硬件升级...原创 2018-05-18 11:04:09 · 892 阅读 · 0 评论 -
MySQL主从复制与读写分离
常用命令:service mysqld startservice iptables stopmysql –u root 主从复制 概念影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。 MYSQL-B收到后,写入本地日志系...原创 2018-05-18 11:16:54 · 478 阅读 · 2 评论