数据插入给C# .NET 兄弟们做点小贡献 - NoSql LevelDB .net 移植版 普通PC 100万条数据插入不超过4秒


题记:写这篇博客要主是加深自己对数据插入的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

给C# .NET 兄弟们做点小献贡 - NoSql LevelDB .net 移植版 通普PC 100万条数据插入不超越4秒

支撑多线程,发并安全

解决方案下载址地:
http://pan.baidu.com/share/link?shareid=508379&uk=201606611

有任何疑问请系联:QQ交流群 204725117

LevelDB 是一个由Google公司所研发的键/值对(Key/Value Pair)嵌入式数据库管理系统编程库,[1] 以开源的BSD许可证宣布。

高性能,单简的体系结构:只支撑API用调,不支撑SQL言语

自由软件和开放源码代软件
数据支撑被Snappy函式库压缩,以增加Disk I/O晋升能效

现在仅支撑 Linux 完全由C++开辟,支撑TB级数据,本项目将其移植到windows 及 .net 平台上!

用调码代范例:

每日一道理
有一首诗最为动人,那就是青春;有一段人生最美丽,那就是青春;有一道风景最为亮丽,那就是青春。青春,不要说已疲惫,也许你的幻想曾被现实无情毁灭,也许你的追求毫无结果,但你应该相信,没有寒风的洗礼,哪来万紫千红的春天,没有心的耕耘,哪有累累硕果?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using WebSystem.Framework.DAO.LevelDB;

namespace LevelDbDemo
{
    class Program
    {
        static DB Database { get; set; }
        static string DatabasePath { get; set; }
        static void Main(string[] args)
        {
            var tempPath = Path.GetTempPath();
            var randName = Path.GetRandomFileName();
            DatabasePath = Path.Combine(tempPath, randName);
            Cache c = new Cache(100 * 1024 * 1024);
            var options = new Options()
            {
                BlockCache = c,
                CreateIfMissing = true,
            };
            Database = new DB(options, "mylevel.db");

            

            //开始间时
            TimeSpan runTime = new TimeSpan(DateTime.Now.Ticks);

            //循环插入 100万 k,v 
            for (int i = 0; i < 1000000; i++)
            {
                Database.Put(i.ToString(), i.ToString() + "A");
            }

            //迭代取有所数据
            //var entries = new List<KeyValuePair<string, string>>();
            //try
            //{
            //    foreach (var entry in Database)
            //    {
            //        entries.Add(entry);
            //    }
            //}
            //catch { }

            //取某一个key 的 值
            string value = Database.Get("123455");  //大约 0.00X 几秒

            //束结间时
            TimeSpan timeNow = new TimeSpan(DateTime.Now.Ticks);
            //间时间隔
            TimeSpan ts = timeNow.Subtract(runTime).Duration();
            Console.WriteLine(" 用时:" + ts.TotalSeconds.ToString() + "" + ts.TotalMilliseconds.ToString() + "毫秒");


        }
    }
}

文章结束给大家分享下程序员的一些笑话语录: 雅虎最擅长的不是开通新业务,是关闭旧业务。

优质内容筛选与推荐>>
1、java Map 怎么遍历
2、自定义Git(转载)
3、网页背景图片的淡入淡出效果
4、linux 重定向
5、完美数列【置顶】


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn