新手小白熟记的MYSQL的基础知识
MySQL和NoSQL的
有哪些
关系型数据库(MySQL)
:Oracle、MySQL、SQL Sever、PostgreSQL、非关系型数据库(NoSQL)
:Mongodb、Redis、Hbase、Elasticsearch、Cassandra、Neo4j
区别
- 数据存储方式不同
关系型数据:天然就是表格式的,因此存储在数据表的行和列中,结构化存储。
非关系型数据:通常存储在数据集中,就像文档、键值对、列存储、图结构。 - 扩展方式不同
在基于web的结构中,- 关系型数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web Server那样简单的通过添加更多的硬件和服务节点来拓展性能和负载能力。通常要优化机器性能。
- 非关系型数据存储天然就是分布式的,NoSQL数据库是横向扩展的,可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。
- 对事务性的支持不同
如果数据操作需要高事务性或者复杂数据查询需要控制执行计划,那么- 传统的SQL数据库从性能和稳定性方面考虑是你的最佳选择
- NoSQL数据库是最终一致性,一般不保证ACID的数据存储系统,具有极高的并发读写性能,真正闪亮的价值是在操作的扩展性和大数据量处理方面
SQL语法中的7个基本指令
『SELECT』、『FROM』、『WHERE』、『GROUP BY』、『HAVING』、『ORDER BY』、『LIMIT』
每个指令的意思分别为:
语法 | 功能 |
---|---|
SELECT | 查询字段 |
FROM | 查询表格 |
WHERE | 查询条件 |
GROUP BY | 分组条件 |
HAVING | 组别条件 |
ORDER BY | 显示顺序 |
LIMIT | 显示限制 |
常用语法语句
SQL排查数据重复
1 | -- 方法一: |
SQL分页优化
- 使用 limit 查询
1
2
3
4-- 从6000开始,查10条数据需要 1.039秒
SELECT * FROM user LIMIT 6000, 10;
-- 从6000开始,查100条数据需要 12.191秒
SELECT * FROM user LIMIT 6000, 100; - 使用 order by 查询
1
2
3
4-- 从6000开始,查10条数据需要 1.044秒
SELECT * FROM user ORDER BY id LIMIT 6000, 10;
-- 从6000开始,查100条数据需要 12.047秒
SELECT * FROM user ORDER BY id LIMIT 6000, 100; - id 优化查询
1
2
3
4-- 从6000开始,查10条数据需要 0.746秒
SELECT * FROM user WHERE id >= (SELECT id FROM data_server LIMIT 6000, 1) LIMIT 10;
-- 从6000开始,查100条数据需要 11.874秒
SELECT * FROM user WHERE id >= (SELECT id FROM data_server LIMIT 6000, 1) LIMIT 100; - 利用 between 查询
1
2
3
4-- 从6000开始,查10条数据需要 0.696秒
SELECT * FROM user WHERE id BETWEEN 6000 AND 6010;
-- 从6000开始,查100条数据需要 10.751秒
SELECT * FROM user WHERE id BETWEEN 6000 AND 6100;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 学弟不想努力了!
评论