数据库相关

1. sql调优

  1. 对查询进行优化, 避免全表扫描,首先应考虑在 where及order by涉及的列上使用索引
  2. 避免在where子句中对字段进行null值判断, 否则将导致引擎放弃使用索引而进行全表扫描,如:
select id form t where num is null

可以在num设置默认值0,确保表中的num列没有null值,然后这样查询

select id form t where num = 0
  1. 避免在where子句中使用!=或<>操作符, 否则引擎放弃使用索引而进行全表扫描.
  2. 避免在where子句中使用or来连接条件,如果一个字段有索引, 一个字段没有索引, 引擎将放弃使用索引而使用全表扫描,如:
select id from t where num=10 or name='admin'

可以这样查询:

select id from t where num = 10
union all
select id from t where name='admin'
  1. in 和 not in 也要慎用, 否则会导致全表扫描, 如
select id from t where num in(1,2,3)

对于连续的数值, 能用between不要用in

select id from t where num between 1 and 3
  1. 避免在where子句中对字段进行表达式或者函数操作,否则引擎放弃使用索引而进行全表扫描.
  2. 避免使用模糊查询, 可使用全文检索
  3. 避免使用 * , 使用具体字段代替 *

2. 引擎问题

特点 Myisam BDB Memery InnoDB Archive
存储限制 没有 没有 64TB 没有
事物安全 支持 支持
锁机制 表锁 页锁 表锁 行锁 行锁
B树索引 支持 支持 支持 支持
哈希索引 支持 支持
全文索引 支持
集群索引 支持
数据缓存 支持 支持
索引缓存 支持 支持
数据可压缩 支持 支持
空间使用 N/A 非常低
内存使用 中等
批量插入的速度 非常高
支持外键 支持

  • 最常使用的两种存储引擎
  • Myisam存储引擎. 当create创建新表时, 为指定新表的存储引擎时, 默认使用Myisam. 数据文件和索引文件可以放置在不同的目录, 平均分布io, 获得更快的速度.
  • innoDB(MySQL的默认引擎)存储引擎提供了具有提交, 回滚和崩溃恢复能力的事物安全, 但是对比 Myisam的存储引擎, InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引

  • 如何选择合适的存储引擎
    选择标准: 根据应用特点选用合适的存储引擎, 对于复杂的应用系统可以根据实际情况选择多种引擎进行组合.
  1. Myisam: 插件式存储引擎, 他是在web, 数据仓库和其他应用环境下最常使用的存储引擎之一
  2. InnoDB: 用于事物处理应用程序, 具有众多特性, 包括ACID事物支持
  3. Memory: 将所有数据保存在RAM中, 在需要快速查找引用和其他类似数据的情况下, 可提供极快的访问.
  4. Merge: 允许MySQLDBA或开发人员将一系列等同的Myisam表以逻辑方式组合在一起, 并作为一个对象引用他们, 对于诸如数据仓库等VLDB环境十分合适.

3. 数据持久化

  1. 数据持久化就是把内存中数据模型转化为存储模型
  2. 数据持久化的好处
  3. 程序代码重用性强, 即使更换数据库, 只需要更改配置文件, 不必重写程序代码
  4. 业务逻辑代码可读性强, 在代码中不会有大量sql语言, 提高程序可读性
  5. 持久化技术可以自动优化, 以减少对数据库的访问量, 提高程序运行效率
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容