- 8
- 0
- 约3.92千字
- 约 19页
- 2015-09-25 发布于重庆
- 举报
MySQL数据库设计与查询20140410.pdf
互联⺴软件架构漫游指南
⾼性能的MySql数据库
设计与查询
Leap@BestApp
核⼼思想
• 让MySql做他最擅⻓的事情:
• 数据库是⽤来存储和查询数据的!
• 尽量不要在数据库做复杂的统计分析运算,复杂
运算放在后台程序⾥进⾏!(count、sum、
min、max、avg、group by)
• 尽可能的减少数据库查询次数:
• 不要在循环中查询数据库,特别是循环次数不确
定的时候。
核⼼思想
• N+1问题
• Client.limit(10).each do |client|
• puts client.address.postcode
• end
• 上⾯的实现会执⾏11次数据库操作(clients表1次,addresses表10次)
• SELECT * FROM clients LIMIT 10
• SELECT addresses.* FROM addresses WHERE addresses.client_id = 1
•
…
• SELECT addresses.* FROM addresses WHERE addresses.client_id = 10
• Client.includes(:address).limit(10).each do |client|
• puts client.address.postcode
• end
• 这个实现只会执⾏两次数据库操作(clients表1次,addresses表1次)
• SELECT * FROM clients LIMIT 10
• SELECT addresses.* FROM addresses WHERE (addresses.client_id IN (1,2,3,4,5,6,7,8,9,10))
表设计
• 数据规模:
• 单库数据表的数量控制在300张以内。
• 单表记录数超过100W就要开始考虑分表,超过
500w就必须进⾏分表。
• 单表字段数根据字段类型,控制在20〜40个。
表设计
• 主键:
• 每张表都要有唯⼀的主键
• 主键由数据库或者主键⽣成系统统⼀维护
• 主键⼀旦写⼊,禁⽌修改
• 禁⽌使⽤数据库⾃带的外键约束:
• 不在数据库内创建外键约束,外键约束由程序控制
• 禁⽌使⽤存储过程、触发器、视图、计划任务
表设计
• 字段类型:
• 可变⻓字段使⽤varchar类型,字段⻓度超过4000时,必须和原
表进⾏分拆
• 仅当需存储的字节数可能超过20000时,使⽤TEXT系列类型,必
须和原表进⾏分拆
• 精确到天的时间字段使⽤DATE类型
• 精确到秒的时间使⽤DATETIME类型
• 尽量不要使⽤null字段,为可能为空字段设置默认值。
• 取值有限的字段(性别、民族等),使⽤ENUM代替VARCHAR
表设计
• 索引:
• ⼤幅提⾼查询操作速度,但是会降级变更操作的速度,需要消
耗额外的存储空间。所以索引不是越多越好。
• 每个查询只能使⽤⼀个索引,在where⼦中使⽤了,就⽆法在
order by⼦句中使⽤,除⾮两者能使⽤同⼀个索引。
• 索引不会保存索引列全为NULL的记录
• 字符字段必须且只需要建前缀索引
• 根据SQL语句的执⾏频率来决定索引的建⽴
• 数据重复度⾮常⾼的字段不需要建索引
表设计
• 单
您可能关注的文档
- H1N1亚型猪流感病毒广东分离株全基因克隆及其遗传演化分析.pdf
- H3CWA1208EGP无线局域网增强型接入点设备快速入门APW101整本手册.pdf
- Hadoop大数据处理讲义C0.课程介绍.pdf
- HGJ21283金属焊接结构湿式气柜施工及验收规范.pdf
- HJT92—2002水污染物排放总量监测技术规范.pdf
- HMM在语音识别中的应用.ppt
- Hopfield神经网络在SISO仿射非线性系统辨识与控制中的应用研究.pdf
- HSE培训视频监控数据采集系统.pdf
- I2S总线原理及应用实例.ppt
- IBMIMM用户手册远程管理卡.pdf
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 电商数据分析(微课版)课件全套 第1--10章 电商数据分析概述---数据分析报告与看板制作.pptx
- 异常子宫出血的护理查房.pptx
- 2025年中医执业医师个人工作计划范文.docx VIP
- 2024《中班幼儿饮食行为现状调查—以S幼儿园为例》12000字.docx VIP
- 2025年美容美发十年行业数据洞察报告.docx
- 护理交接班制度.pptx VIP
- 初中电学总复习初中电学总复习.doc VIP
- 北京邮电大学《机器学习》2023-2024学年期末试卷.doc VIP
- 照顾老人保姆合同范本10篇.docx VIP
- 2024年锡林郭勒职业学院单招职业倾向性考试题库必考题.docx VIP
原创力文档

文档评论(0)