لینک کوتاه
چهارشنبه , 26 مرداد 1401
0 دیدگاه
همانطور که باید بدونید استرس تست بخش مهمی از هر پروژه هست که باید حتما انجام بشه و یکی از رایجترین ابزارهای apache benchmark هست اما ممکن هست این ابزار در دسترس نباشد یا بخواهید با ابزارهای دیگر هم این تست رو انجام بدید . دو برنامه دیگر به اسم siege و weighttp عملکرد مشابهی دارند و میتوانید از آنها استفاده کنید .
در این پست دستور معادل در دو برنامه دیگه به اسم siege و weighttp رو معرفی میکنیم .
دستور مثال :
command for Ab :
ab -n 1000 -c 100 http://reza.biz/
command for siege :
siege -q -b -c 100 -r 1000 http://reza.biz/
command for weighttp:
weighttp -n 1000 -c 100 -k http://reza.biz/
لینک کوتاه
یکشنبه , 16 آذر 1399
2 دیدگاه
گاهاً لازمه در ساختار دیتابیس یک فیلد داشته باشید که با استفاده از مقادیر سایر فیلدها مقدار دهی بشود ، بطور مثال فرض کنید دو فیلد نام و نام خانوادگی دارید و سپس یک فیلد نام کامل دارید ، که میخواهید بر اساس دیتای دو فیلد دیگر همیشه مقدار دهی بشود .
در PostgreSQL با استفاده از دستور generated always as امکان پذیر هست .
با هم همین مثال رو بررسی میکنیم . ابتدا یک جدول میسازیم .
CREATE TABLE "test2" ( id SERIAL , first_name VARCHAR(100), last_name VARCHAR(100) , full_name VARCHAR(201) generated always AS (first_name || ' ' || last_name) stored ) ;
و سپس یک رکورد را وارد میکنیم
INSERT INTO "test2" ( "first_name", "last_name" ) VALUES ( 'reza', 'karimi' );
و حالا نتیجه .

لینک کوتاه
یکشنبه , 17 آذر 1398
0 دیدگاه
احتمالا اگر با دیتابیس هایی مثل mysql کار کرده باشید با یک auto increment ساده میتونید فیلد های id رو بصورت auto increment مقدار دهی کنید که خب خیلی عالیه اما توی postgresql معمولا فیلد رو از نوع serial میسازن و خود pg زحمت ساخت یک sequence رو برامون میکشه و الباقی داستان !!
یکی از دوستان توی گروه میخواست به روش mysql اینکارو انجام بده و خب بلطبع راه کارش استفاده از یک تریگر هست !
خب ما یک جدول میسازیم با دو تا فیلد که یکیش id از نوع integer هست .
میتونید روی این فیلد هم index unique بذارید .
-- create table
CREATE TABLE "tbl" (
"id" integer,
"title" character varying(255)
);
کاری که باید انجام بدیم ساخت یک تریگر هست که زمانی که یک insert داخل این جدول رخ میده ، max(id) رو در بیاره و +1 بکنه و برای رکورد جدید اعمال بکنه
-- create function
create or replace function id_increment_tbl()
returns trigger as
$BODY$
DECLARE
an_integer int4 ;
begin
select (max(id)::integer + 1) into an_integer from tbl ;
if an_integer IS NULL then
an_integer:=1;
end if;
NEW.id := an_integer;
return NEW;
end;
$BODY$
LANGUAGE plpgsql;
-- create trigger
CREATE TRIGGER idincrementTrigger
BEFORE INSERT
ON tbl
FOR EACH ROW
EXECUTE PROCEDURE id_increment_tbl();
و حالا تست میکنیم
insert into tbl(title) values ('test');
لینک کوتاه
دوشنبه , 15 مهر 1398
1 دیدگاه

بیت کوین چیست ؟
بیت کوین یک پول دیجیتال غیرمتمرکز بدون پشتوانه است که هیچ دولتی آنرا بعنوان پول قانونی به رسمیت نشناخته است (نکته مثبت :) ). تراکنشهای این شبکه بدون یک مرکز مشخص کار میکند و شبکه آن بصورت همتا به همتا میباشد که این یعنی تراکنشها مستقیما و بدون واسطه بین خود کاربران انجام میشود .
گره های شبکه ، تراکنشها را در یک دفترکل توزیع شده همگانی به اسم بلاک چین یا زنجیره بلاک ذخیره میکنند. یکپارچگی و ترتیب زمانی زنجیره بلاک از طرق رمزنگاری انجام میشود .
ادامه مطلب ...
لینک کوتاه
یکشنبه , 06 مرداد 1398
0 دیدگاه
متاسفانه GitHub مشغول بستن دسترسی کاربرهای ایرانی هست ، لذا کلیه افرادی که سورس هاشون روی GitHub هست توصیه میکنم سریعا به سرویس های دیگه منتقل بکنند .
متاسفانه ممکنه اوضاع روی سرویس های مشابه مثل GitLab هم همین بشه در آینده ، پس یکی از راه حل ها نصب سورس کنترل اختصاصی روی سرور هست .
آموزش نصب GitLab روی سرور
GitLab این امکان رو داره که روی سرور شخصی نصب بشه . اما شایدم بد نباشه یه نگاهی به GitPrep هم بندازید .
GitPrep یک سورس کنترل هست که شبیه به گیت هاب پیاده سازی شده و میتوانید بعنوان سورس کنترل ازش استفاده بکنید و روی سرور شخصی نصب نمایید.
آموزش نصب GitPrep روی سرور
دمو GitPrep
لینک کوتاه
چهارشنبه , 13 مرداد 1395
7 دیدگاه
سلام
قطعا پیش آمده براتون که در دیتابیس رکوردهای تکراری براساس یک فیلد رخ بده
مثلا ، کاربری با نام کاربری یکسان منتها بصورت حروف بزرگ و کوچیک ثبت نام کرده باشه Reza , reza rEzA
یا حتی مثلا شخصی به اسم رضا اقدام به ارسال چندین نظر کرده باشه
یا اینکه یکی از مطالب اخبارتون دو بار ثبت شده باشه
علی ای حال ، قطعا این مساله رخ میدهد
و اما ما میخوایم ببینیم با اینها چکار کنیم
ادامه مطلب ...
لینک کوتاه
سه شنبه , 25 اسفند 1394
4 دیدگاه
پارتیشن بندی اساسا در دیتاهای بزرگ سبب افزایش سرعت (قابل ملموس) دستورات SELECT میشود.
و همانطور که از اسمش پیداست براین اساس هست که رکوردهای یک جدول را به چندین پارت کوچکتر تقسیم میکند و براساس نوع تقسیم بندی فقط در یک یا چند پارت کوچکتر عملیات جستجو را انجام میدهد که این نتیجه خوبی در دیتاهای بارکورد بالا خواهد داشت ، دیتابیس هایی چون MySQL و MSSQL چنین قابلیتی رو دارا هستند که بسادگی پارتیشن بندی در آنها ایجاد کرد اما برای PostgreSQL کمی داستان متفاوت است. در حقیقت پارتیشن بندی در PostgreSQL با قابلیت وراثت جداول از یکدیگر قابل پیاده سازی میباشد به این ترتیب که یک جدول مادر ساخته میشود و جدولهای فرزند متعدد (که بعنوان پارت های جدا هستند) از جدول مادر ارث بری میکنند و وظیفه ذخیره داده ها را برعهده دارند .
در ادامه نحوه ساخت پارتیشن بندی دیتابیس در Postgresql را آموزش میدهیم .
ادامه مطلب ...