• 数据库篇


     ado.net 九大步骤:https://www.cnblogs.com/Allofus/p/15033965.html

    Connection  数据库连接对象
    Command     数据库命令对象
    DataReader  数据读取器
    DataSet     数据存储器
    
    DataCommand 执行语句命令对象
    DataAdapter 数据集合,用于填充
    int count = (int)Command.ExecuteScalar();
    int rows = Command.ExecuteNonQuery();
    SqlDataReader reader = Command.ExecuteReader();

    触发器

    触发器是在对表进行插入、更新或删除操作时自动执行的存储过程;
    触发器通常用于强制业务规则;
    触发器是一种高级约束,可以定义比用 CHECK 约束更为复杂的约束:可执行复杂的SQL语句(
    if/while/case)、可引用其它表中的列;
    触发器定义在特定的表上,与表相关;
    自动触发执行;
    不能直接调用;
    是一个事务(可回滚);

    视图和存储过程

    视图的优点:
        简化操作,把经常查询的数据定义为视图;
        安全性,用户只能查询和修改能看到的数据;
    视图的缺点: 性能偏慢,视图查询时也会转化成对基本表的查询; 存储过程和视图的区别: 视图呈现数据、过程处理数据(可接收参数,输出参数); 过程在创建时就在服务器上进行编译,效率更高;


    关系型数据库

    具有ACID的特点,原子性 一致性 隔离性 持久性;

    提问:

    如何提高 高并发读写效率?比如网站每秒上万次读写请求。

    海量数据的高效率读写如何处理?比如在一个海量数据的表中查询。

    解决:

    0. sql 调优,参考:https://www.cnblogs.com/Allofus/p/15324044.html

    1. 数据库分表可以解决单表海量数据的查询性能问题,分库可以解决单台数据库的并发访问压力问题。

      为什么分表还要分库:因为分表的实质还是在一个数据库上进行的操作,很容易受数据库IO性能的限制。

      具体参考:https://www.jianshu.com/p/84da619ce203

    2. 热数据存 db,需分库分表;冷数据存在 ES(搜索引擎查询)和 Hive(离线查询),提高 read 请求。

    3. 读写分离、限流、主从主备、数据库集群、mycat分片?

    非关系型数据库

    非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合
  • 相关阅读:
    第二百零一天 how can I坚持
    第一百九十七-第二百天 how can I 坚持
    第一百九十六天 how can I 坚持
    第一百九十五天 how can I 坚持
    第一百九十四天 how can I坚持
    第一百九十三天 how can I 坚持
    第一百九十二天 how can I 坚持
    第一百九十一天 how can I 坚持
    杭电2085--核反应堆(打表)
    杭电1799--循环多少次
  • 原文地址:https://www.cnblogs.com/Allofus/p/15014016.html
Copyright © 2020-2023  润新知