精华内容
下载资源
问答
  • 例如:在论坛的数据库中有一张是帖子回复,在论坛的应用中用到最多的就是对指定帖子的某一页的回复进行查询,查询回复的条件是主贴的id;这时候在主贴字段上建索引就势在必然。 2)一定要在主键上建聚集索引...
  •  本书是一本关于oracle database 9i、10g 和11g 数据库体系结构权威图书,涵盖了所有重要oracle 体系结构特性,包括文件、内存结构和进程,锁和闩,事务、并发和多版本,和索引,数据类型,分区和并行,以及...
  • 6.3 活动(基于网络)的数据库复制 231 6.3.1 先决条件 232 6.3.2 必要的spfile修改 232 6.3.3 执行活动复制 234 6.3.4 支持网络的复制如何工作 238 6.4 恢复目录管理 239 6.4.1 合并恢复目录 239 6.4.2 ...
  • 本书第1章强调不要把数据库当成一个黑盒,讨论了开发人员必须了解的数据库的基本特性和功能。第2章提供了一个创建Oracle数据库的绝好例子,从中你将深入地了解数据库和实例的概念。第3章介绍了各种类型的文件,特别...
  • 通常的内部类需要在外部类实例化后才能实例化。 25、JSP中动态INCLUDE与静态INCLUDE区别?  动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中变化,适合用于包含动态页面,并且可以带参数。 静态...
  • 参加过网站的实施 模板的制作 39、tomcat自动关闭常见原因? 我的答案: 现在没遇到过 40、如何设置TOMCAT内存和连接数? 我的答案: Tomcat群集 41、你如何理解Tomcat是什么? 我的答案: Tomcat是JSP...
  • elasticsearch 属性筛选 商品属性筛选 elastic...一是因为mysql字段需要实现设计好,商品属性又是不确定,所以商品属性存储通常是mysql,这为属性筛选增加了无限障碍同时,商品属性数据通常非常巨大,属性...

    elasticsearch 属性筛选 商品属性筛选 elasticsearch设计实现

    每个电商网站根据商品属性筛选商品是硬需求,实现方案有哪些?

    纯mysql方案问题

    纯mysql数据库查询性能无法达到要求,需要使用属性表不断自己做连接查询。

    一是因为mysql字段需要实现设计好,商品属性又是不确定的,所以商品属性存储通常是mysql的纵表,这为属性筛选增加了无限障碍

    同时,商品属性数据通常非常巨大,属性表又通常会用各种方式分表(按分类,按商品ID等),这更让属性筛选在性能上无法满足需求

    mongodb+cache方案

    早期很多网站采用的方式是mongodb+cache的方式,商品完整属性数据信息放到mongodb中,mongodb自身能利用好内存,小数据量可以直接用mongodb,稍大点的数据量,mongodb自身查询性能会迅速下降(mongo主要靠内存及少量好的索引提高查询性能,属性字段做索引不科学),这时可以mongodb配合cache(memcache,redis等),但是随着数据量的增加,cache命中情况越来越低,系统崩溃也是常有的事。

    elasticsearch方案能很好的解决查询的性能问题

    通常意义的搜索引擎都是全文搜索,但是elasticsearch却远不局限于此,能直接当“数据库用”啊,神器,性能?目前来看不是事。下面直接干货,不多解析为什么,想进一步了解的还是移步elasticsearch的文档Elasticsearch Reference

    python 版创建index并添加测试数据

    # encoding: utf-8

    import json

    import requests

    from elasticsearch import Elasticsearch, helpers

    def main():

    mappings = {

    "mappings": {

    "goods":{

    "properties": {

    'goods_id': {

    "type": "long",

    },

    "goods_name": {

    "type": "text",

    },

    "attrs": {

    "type": "nested",

    "properties": {

    "attr_name": {

    "type": "keyword",

    "index": "not_analyzed",

    },

    "attr_value": {

    "type": "keyword",

    "index": "not_analyzed",

    }

    }

    }

    }

    }

    }

    }

    es_url = 'http://localhost:9200/test'

    res = requests.put(es_url, json.dumps(mappings))

    print res.text

    def add_data():

    actions = [

    {

    "_index": 'test',

    '_type': 'goods',

    '_id': 1,

    '_source': {

    'goods_id': 1,

    'goods_name': 'iphone 7',

    'attrs': [

    {

    'attr_name': u'颜色',

    'attr_value': u'白色',

    },

    {

    'attr_name': u'零件状态',

    'attr_value': u'在售',

    },

    {

    'attr_name': u'发货周期',

    'attr_value': u'17 周',

    },

    ]

    }

    },

    {

    "_index": 'test',

    '_type': 'goods',

    '_id': 2,

    '_source': {

    'goods_id': 2,

    'goods_name': 'iphone 8',

    'attrs': [

    {

    'attr_name': u'颜色',

    'attr_value': u'红色',

    },

    {

    'attr_name': u'零件状态',

    'attr_value': u'预售',

    },

    {

    'attr_name': u'发货周期',

    'attr_value': u'1 年',

    },

    ]

    }

    },

    {

    "_index": 'test',

    '_type': 'goods',

    '_id': 3,

    '_source': {

    'goods_id': 3,

    'goods_name': 'honor 8',

    'attrs': [

    {

    'attr_name': u'颜色',

    'attr_value': u'金色',

    },

    {

    'attr_name': u'零件状态',

    'attr_value': u'在售',

    },

    {

    'attr_name': u'发货周期',

    'attr_value': u'17 周',

    },

    ]

    }

    }

    ]

    es_client = Elasticsearch([{'host':'localhost', 'port':9200}])

    res = helpers.bulk(es_client, actions)

    print res

    add_data()

    if __name__ == '__main__':

    main()

    python版查询根据属性查询数据

    # encoding: utf-8

    """eertime文档数据如elasticsearch

    执行频率:1次

    """

    import argparse

    from elasticsearch import Elasticsearch

    import config

    class EsSearchGoods(object):

    def __init__(self, esconfig):

    self.esconfig = esconfig

    self.es = Elasticsearch(self.esconfig)

    def run(self):

    dsl = {

    'query': {

    'bool': {

    'must': [

    {

    'nested': {

    'path': 'attrs',

    'score_mode': 'none',

    'query': {

    'bool': {

    'must': [

    {'term': {'attrs.attr_name': '颜色'}},

    {'term': {'attrs.attr_value': '白色'}}

    ]

    }

    }

    }

    },

    {

    'nested': {

    'path': 'attrs',

    'score_mode': 'none',

    'query': {

    'bool': {

    'must': [

    {'term': {'attrs.ext_name': '发货周期'}},

    {'term': {'attrs.ext_value': '17 周'}}

    ]

    }

    }

    }

    },

    {

    'nested': {

    'path': 'attrs',

    'score_mode': 'none',

    'query': {

    'bool': {

    'must': [

    {'term': {'attrs.ext_name': '零件状态'}},

    {'term': {'attrs.ext_value': '在售'}}

    ]

    }

    }

    }

    }

    ]

    }

    },

    }

    res = self.es.search(index='test', doc_type='goods', body=dsl)

    print res

    def main():

    parser = argparse.ArgumentParser(description=__doc__)

    parser.add_argument('-e', '--environment', action="store", dest="environment",

    choices=('test', 'product'), help="test:使用测试环境配置,product: 使用生产环境配置")

    args = parser.parse_args()

    if not args.environment:

    parser.print_usage()

    return

    esconfig = config.ELASTIC_SEARCH[args.environment]

    es_search_goods_obj = EsSearchGoods(esconfig)

    es_search_goods_obj.run()

    if __name__ == '__main__':

    main()

    上面两个文件中使用到的配置文件

    # encoding: utf-8

    """

    项目配置文件

    """

    import os

    import sys

    APP_ROOT = getattr(sys, '__APP_ROOT__', os.path.abspath('.'))

    ELASTIC_SEARCH = {

    'product': ['192.168.1.20:9200'],

    'test': ['localhost:9200'],

    }

    注:基于elasticsearch 5.4.0

    展开全文
  • 通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。 - 可扩展性 就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个...
  •  通常对于第一个问题,我是很少回答的,并不是不屑于回答,实在是没有办法回答,如果我回答说,“你怎么知道你的数据库需要优化?”又担心这种没有实际意义的回答带有说教意味,打击别人的积极性,所以通常看看而已...
  •  从另一项“每个DBA管理的数据库数量”调查结果(如下图)也可以看到DBA对于企业的重要性(数据来源于ITPUB),约有75%的DBA需要管理5个以上的数据库,其中28.7%的DBA需要管理超过30个数据库。读者可能对这个数字...
  • 7.2.2 创建一个启用文件流的数据库 296 7.2.3 创建一张存储文件流数据 297 7.2.4 操纵文件流数据 298 7.2.5 文件流数据的元数据 302 7.2.6 文件流数据性能方面的考虑 304 7.3 稀疏列 305 7.3.1 稀疏...
  • 7.2.2 创建一个启用文件流的数据库 296 7.2.3 创建一张存储文件流数据 297 7.2.4 操纵文件流数据 298 7.2.5 文件流数据的元数据 302 7.2.6 文件流数据性能方面的考虑 304 7.3 稀疏列 305 7.3.1 稀疏...
  • 读写分离主要是为了将数据库的读和写操作分不到不同的数据库节点上。主服务器负责写,从服务器负责读。另外,一主一从或者一主多从都可以。 读写分离可以大幅提高读性能,小幅提高写的性能。因此,读写分离更适合...
  • 精通Oracle PL/SQL--详细书签版

    热门讨论 2012-08-21 13:06:28
    这一章说明了为什么PL/SQL几乎总是数据库编程正确工具,但也探讨了PL/SQL并不适合于哪些场合,这时需要创新性地使用SQL来完全避免过程式代码。..  第2章:全部打包。包不只是过程逻辑组合,它们具有很多优势,...
  • 读写分离主要是为了将数据库的读和写操作分不到不同的数据库节点上。主服务器负责写,从服务器负责读。另外,一主一从或者一主多从都可以。 读写分离可以大幅提高读性能,小幅提高写的性能。因此,读写分离更适合...
  • 读写分离主要是为了将数据库的读和写操作分不到不同的数据库节点上。主服务器负责写,从服务器负责读。另外,一主一从或者一主多从都可以。 读写分离可以大幅提高读性能,小幅提高写的性能。因此,读写分离更适合...
  • java 面试题 总结

    2009-09-16 08:45:34
    通常的内部类需要在外部类实例化后才能实例化。 22、JSP中动态INCLUDE与静态INCLUDE区别? 动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中变化,适合用于包含动态页面,并且可以带参数。 静态...
  • java面试题典 java 面试题 经典

    热门讨论 2010-06-18 13:42:36
    1. 面向对象特征有哪些方面? 7 2. String是最基本数据类型吗? 7 3. int 和 Integer 有什么区别? 7 4. String 和StringBuffer区别? 8 5. 运行时异常与一般异常有何异同? 8 6. 说出ArrayList,Vector, ...
  • 通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象类是否实现了接口。 [Page] 39.启动一个线程是用run()还是start()? 答:启动一个线程是调用start()方法,使...
  • springmybatis

    2015-09-05 06:54:28
    5. 在java 对象和 数据库之间有做mapping 配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis...
  • 16. hibernate进行多查询每个中各取几个字段,也就是说查询出来结果集没有一个实体类与之对应如何解决; 123 17.介绍一下Hibernate二级缓存 123 18、Spring 依赖注入是什么意思? 给一个 Bean message ...
  • 测试培训教材

    2014-04-01 12:10:48
    但是还需要修改以前Project的数据库连接属性 否则会提示错误 然后还要修改 C:\Program Files\Mercury\Quality Center\repository\qc中的dbcon.txt: qcsiteadmin_db@192.168.1.12.1433. 还有 C:\Program Files\...
  • iPhone开发秘籍(第2版)--源代码

    热门讨论 2012-12-11 13:51:22
    涉及编程、数字媒体、网站设计和数码摄影等多个领域。Erica开发了十多个本地应用。他常在其iPhone编程博客发表些极有见地文章。 目录 封面 -26 封底 -25 扉页 -24 版权 -23 版权声明 -22 译者序 -20 致谢 -19 ...
  • 网址导航:展示常用开发网站 搜索功能:输入搜索、搜索推荐、历史搜索等等 关于我们:鸿洋wanAndroid介绍 love爱意表达部分,程序员表白神器,简易含蓄单身程序员可以看看该模块,可以给女朋友一个惊喜! 玩...
  • : xx开发实习生居多,通常的招聘条件很模糊,可以说是零门槛非专业生也能干事,例如: * 大专学历或不限,从事经验1年或不限,以及人数若干较多5-10人以上甚至不限 * 熟练使用计算机基本操作,喜欢计算机相关专业...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

网站的数据库通常需要哪些表