当前位置: 首页 > news >正文

如何用ps做网站导航谷歌搜索引擎363

如何用ps做网站导航,谷歌搜索引擎363,怀化网站优化推荐,怎样用模块做网站因为sqlite是基于文件的,所以默认情况下,sqlite是不支持并发读写的,即写操作会阻塞其他操作,同时sqlite也很容易就产生死锁。 但是作为一个使用广泛的离线数据库,从sqlite3.7.0版本开始(SQLite Release 3.…

因为sqlite是基于文件的,所以默认情况下,sqlite是不支持并发读写的,即写操作会阻塞其他操作,同时sqlite也很容易就产生死锁。

但是作为一个使用广泛的离线数据库,从sqlite3.7.0版本开始(SQLite Release 3.7.0 On 2010-07-21),sqlite引入了更常见的WAL机制来解决页面的读写并发问题。但是sqlite的实现特点决定了其并发能力较低。

SELECT sqlite_version();
3.8.8

开启了WAL模式之后,sqlite就会生成三个文件test.db, test.db-shm, test.db-wal。在WAL模式下支持一写多读。

当临时文件的内容达到一定的量,sqlite会进行一次落盘。

PRAGMA wal_autocheckpoint=5000;

pagesize默认设置的是4k,autocheckpoint设置5000,表示5000个page的数据量,会进行一下checkpoint,也就是20M。

查询日志模式:PRAGMA journal_mode;

设置日志模式:PRAGMA journal_mode=WAL;

示例
CREATE TABLE "users" (
"id"  INTEGER,
"name"  TEXT,
"age"  INTEGER,
"created_at"  TEXT,
"updated_at"  TEXT
);

使用Go的gorm来操作sqlite3

package go_sqliteimport ("fmt""strconv""sync""time""database/sql""gorm.io/driver/sqlite""gorm.io/gorm"
)var dbfile = "demos/go_sqlite/test.db"func Run() {gormDB, sqlDB, err := InitDB()if err != nil {panic(err)}defer sqlDB.Close()users := []User{}for i := 0; i < 1000; i++ {user := User{Name:      "user_" + strconv.Itoa(i),Age:       uint8(i % 100),CreatedAt: time.Now().Unix(),UpdatedAt: time.Now().Unix(),}users = append(users, user)}err = BatchInsertUsers(gormDB, users)if err != nil {panic(err)}users, err = GetUsers(gormDB)if err != nil {panic(err)}fmt.Println(len(users))fmt.Println(users[0])
}type User struct {ID        uintName      stringAge       uint8CreatedAt int64UpdatedAt int64
}func InitDB() (*gorm.DB, *sql.DB, error) {gormDB, err := gorm.Open(sqlite.Open(dbfile), &gorm.Config{})if err != nil {return nil, nil, err}sqlDB, _ := gormDB.DB()gormDB.Exec("PRAGMA journal_mode=WAL;")sqlDB.SetMaxIdleConns(10)sqlDB.SetMaxOpenConns(100)sqlDB.SetConnMaxLifetime(time.Hour)return gormDB, sqlDB, nil
}func BatchInsertUsers(gormDB *gorm.DB, users []User) error {batchSize := 100batchCount := (len(users) + batchSize - 1) / batchSizefor i := 0; i < batchCount; i++ {start := i * batchSizeend := (i + 1) * batchSizeif end > len(users) {end = len(users)}batch := users[start:end]tx := gormDB.Begin()if err := tx.Error; err != nil {return err}if err := tx.Create(&batch).Error; err != nil {tx.Rollback()return err}if err := tx.Commit().Error; err != nil {return err}}return nil
}func GetUsers(gormDB *gorm.DB) ([]User, error) {var users []Usererr := gormDB.Find(&users).Errorif err != nil {return nil, err}return users, nil
}

并发测试

var wg sync.WaitGroupfunc Run2() {gormDB, err := gorm.Open(sqlite.Open(dbfile), &gorm.Config{})if err != nil {panic("failed to connect database")}gormDB.Exec("PRAGMA journal_mode=WAL;")sqlDB, _ := gormDB.DB()sqlDB.SetMaxIdleConns(10)sqlDB.SetMaxOpenConns(100)wg.Add(2000)// 并发写入 1000 条数据for i := 0; i < 1000; i++ {go func(i int) {defer wg.Done()err := gormDB.Transaction(func(tx *gorm.DB) error {user := User{Name: fmt.Sprintf("user_%d", i)}result := tx.Create(&user)return result.Error})if err != nil {fmt.Printf("failed to write data: %v\n", err)}}(i)}// 并发读取数据for i := 0; i < 1000; i++ {go func() {defer wg.Done()var users []Usererr := gormDB.Transaction(func(tx *gorm.DB) error {result := tx.Find(&users)return result.Error})if err != nil {fmt.Printf("failed to read data: %v\n", err)} else {fmt.Printf("read %d records\n", len(users))}}()}wg.Wait()fmt.Println("done")
}
参考

https://mp.weixin.qq.com/s/9Y1EfzM5cups9oklByAW5Q

https://mp.weixin.qq.com/s/4AhMBJaZ4NZqfqcoPduXjg

http://www.hkea.cn/news/439046/

相关文章:

  • 阜阳中国建设银行官网站百度提交入口网站网址
  • 游戏网站怎么建设广告营销公司
  • 韩城做网站b2b平台推广网站
  • 网站建设课程设计摘要生活中的网络营销有哪些
  • 简单网站建设优化推广100个电商平台
  • 网站建设的仿站seo顾问收费
  • 珠宝行业做网站的好处株洲seo排名
  • java web开发网站开发cpa推广接单平台
  • 广西南宁网络营销网站网站权重优化
  • 黄山网站设计公司营销网站建设多少钱
  • 网站建设招标评分表湖南关键词优化推荐
  • 淘宝上成都网站建设如何制作视频网站
  • 最吃香的男生十大手艺5g网络优化
  • 河源哪里做网站网络项目怎么推广
  • 网站闭关保护怎么做广州百度seo 网站推广
  • 可以在线做动图的网站近期重大新闻事件
  • 伊犁州建设局网站怎么做微信小程序
  • 做网站需要买主机那新媒体营销方式有几种
  • 网络推广seo公司seo排名的方法
  • 南山做网站多少钱百度资讯
  • 西安哪里有做网站的小学生收集的新闻10条
  • 做游戏网站有几个要素seo网站关键词优化报价
  • 蓬业东莞网站建设技术支持东莞做网站公司首选
  • 网站版式设计获客渠道有哪些
  • 今日军事新闻简短扬州seo优化
  • 国外好看的教育类网站模板下载东莞做网站最好的是哪家
  • 微擎与wordpress快速优化seo软件推广方法
  • 英文网站设计哪家好免费网站搭建
  • 网站建设公司 销量深圳谷歌seo公司
  • 新蔡哪有做网站建设的全球疫情今天最新消息